Back to skills
SKILL.md
Indexedex Ui Tx Testing
ASecurityTest IndexedEx frontend money paths with Playwright injected wallets and verify Robinhood Anvil onchain effects.
- 9 stars
- 0 votes
- 0 copies
- 1 view
- Added September 10, 2026
Works with
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 4 files and shows the line behind each finding
npx -y skills add cyotee/indexedex --skill indexedex-ui-tx-testing --agent claude-codeAre you the author of Indexedex Ui Tx Testing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/cyotee-indexedex-ui-tx-testing)---
name: indexedex-ui-tx-testing
description: "Test IndexedEx frontend money paths with Playwright injected wallets and verify Robinhood Anvil onchain effects."
license: MIT
---
# IndexedEx UI transaction testing
Prove the **Next app builds and submits correct txs** by driving the real UI with an **injected EIP-1193 wallet**, then asserting **RPC balances / receipts** — not click-only.
## When / when not
| Use | Skip |
|-----|------|
| After deposit / swap / staking / approval wiring changes | Solidity unit/fork tests only |
| Robinhood Anvil (4663) + DTF launch verification | Pixel/visual QA without chain |
| Fee DETF bond/mint paths on `/staking` | Deploying stacks *as part of* a pure UI PR (prefer operator-provided RPC) |
## Default target (DTF / Robinhood)
| Item | Value |
|------|--------|
| App | `frontend/apps/indexedex` (`@indexedex/app-indexedex`) |
| Port | **3002** |
| Chain id | **4663** |
| RPC | `http://127.0.0.1:8545` |
| Wallet | Anvil **#0** (e2e inject); scripts fund **#1** as human UI wallet |
| Artifacts | `frontend/packages/protocol/src/addresses/chain/4663/` |
The canonical source is `frontend/apps/indexedex`. DTF shares that source and adds a domain notice before the temporary staking overlay.
## Quick start
```bash
# 0) Repo root — operator stack already up (pick ONE family; do not merge)
# Fee DETF / staking (CHIR live after first bond):
bash scripts/shell/anvil_robinhood_fee_detf.sh all --restart-anvil
# OR lab multi DETF/SE (inert until UI bond):
# bash scripts/shell/anvil_robinhood_main.sh all --restart-anvil
cast chain-id --rpc-url http://127.0.0.1:8545 # must be 4663
# 1) Frontend
cd frontend
npm install
npm run build -w @indexedex/app-indexedex
npm run test:e2e:install -w @indexedex/app-indexedex
# 2) Shell + IA (no live txs required)
npm run test:e2e -w @indexedex/app-indexedex
# 3) Live money paths (bond / deposit when stack allows)
npm run test:e2e:live -w @indexedex/app-indexedex
```
Reuse a running IndexedEx dev server:
```bash
npm run dev:indexedex
E2E_SKIP_WEBSERVER=1 npm run test:e2e:live -w @indexedex/app-indexedex
```
## Navigation (read on demand)
| Need | Open |
|------|------|
| Env vars, suite map, pass criteria | [references/dtf-e2e-runbook.md](references/dtf-e2e-runbook.md) |
| Manual click checklist (bond / swap / deposit) | [references/manual-tx-journeys.md](references/manual-tx-journeys.md) |
| Stack + wallet setup (RH Anvil) | [references/stacks-and-wallets.md](references/stacks-and-wallets.md) |
| Product route matrix (historical full plan) | `frontend/UI_FULL_FUNCTIONALITY_TEST_PLAN.md` |
| RH agent runbook | `docs/ANVIL_ROBINHOOD_UI_AGENT_RUNBOOK.md` |
## Hard rules
1. **No MetaMask automation** — use Playwright inject (`e2e/wallet/injectWallet.ts`).
2. **Pass = on-chain effect** — balance delta, NFT mint, or receipt via RPC; not “button enabled.”
3. **Query vs execute** — deposit query **8-tuple** / execute **10-tuple**; never spread execute into query.
4. **Approvals** — multi-leg uses **split** Permit2 + router CTAs (`swap-approve-*`, ActionCta gates).
5. **List-driven addresses** — read `chain/<id>/` tokenlists + `platform.json`; do not hardcode vaults.
6. **Two Anvil families** — `fee_detf` (CHIR live) vs `main` (inert demos). Last export wins for `chain/4663/`.
7. **Do not invent APY/USD** in assertions or UI checks.
## Key files
| Path | Role |
|------|------|
| `frontend/apps/indexedex/e2e/` | DTF Playwright suite (RH default) |
| `frontend/apps/indexedex/e2e/staking-bond-live.spec.ts` | Bond WETH via `/staking` |
| `frontend/apps/indexedex/e2e/swap-routes-live.spec.ts` | Live swap/deposit when stack supports |
| `frontend/apps/indexedex/playwright.config.ts` | Port 3002 + RH env |
| `frontend/packages/protocol/` | Shared addresses / tokenlists |
| `frontend/packages/protocol/src/addresses/chain/4663/` | RH artifacts |
## Agent verification loop
```text
1. Confirm RPC + chain id (cast)
2. Confirm artifacts exist for that chain
3. npm run test:e2e (shell/IA)
4. npm run test:e2e:live (bond/deposit) — skip-only is OK if stack missing; document blocker
5. Optional: browser MCP walk /staking?detf=<chir> for manual confirm
6. Fix UI → re-run live suite → only then claim money-path done
```
## See also
- `skill:indexedex-ui-refactor` — env / artifacts / wagmi transports
- `skill:indexedex-product-voice` — copy only
- `skill:ethskills-qa` — general dApp ship checklist
- Deploy stacks: `scripts/foundry/anvil_robinhood_fee_detf/`, `anvil_robinhood_main/`
Files in this skill
- SKILL.md
- references/dtf-e2e-runbook.md
- references/manual-tx-journeys.md
- references/stacks-and-wallets.md
Attribution
Comments
Loading comments…