Files
proxmox/docs/04-configuration/CHAIN138_WALLET_PROJECTS_COMPLETION_REVIEW.md
defiQUG bea1903ac9
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Sync all local changes: docs, config, scripts, submodule refs, verification evidence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:46:06 -08:00

120 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Chain 138 Wallet Projects — Completion and Test Review
**Last Updated:** 2026-02-12
**Purpose:** Verify all four wallet projects are complete and document test status.
---
## 1. Summary
| Project | Repo location | Code complete | Tests run | Test result | Notes |
|---------|---------------|---------------|-----------|-------------|--------|
| **metamask-integration** | `~/projects/metamask-integration` | ✅ Yes | ✅ Yes | ✅ All pass | E2E script: **7/7 tests pass** (default RPC: rpc-http-pub.d-bis.org; chain-id hex/decimal, network config hex fixed). Snap (proxmox): **unit tests pass.** |
| **LedgerLive** | `~/projects/LedgerLive` | ✅ Yes | ✅ Yes | ✅ Checklist runs | Step 18 materials; manual test plan; no automated E2E (blocked until Ledger adds Chain 138). |
| **app-ethereum** | `~/projects/app-ethereum` | ✅ Yes | ⚠️ Env-limited | — | Chain 138 in `network.c`; build requires `BOLOS_SDK`; CI runs on push (Ledger workflows). |
| **TrustWallet-Integration** | `~/projects/TrustWallet-Integration` | ✅ Yes | N/A | ✅ N/A | Materials only (registry JSON); validated by use in wallet-core PR. |
---
## 2. metamask-integration
### 2.1 Scope
- **~/projects/metamask-integration:** Config, docs, examples, `scripts/test-metamask-integration.sh` (E2E: RPC, chain ID, WETH9/10, oracle, token list, network config).
- **proxmox/metamask-integration (submodule):** Includes **chain138-snap** (Snap package with Jest + Playwright).
### 2.2 Tests run
| Test | Command / location | Result |
|------|---------------------|--------|
| E2E script (RPC, chain, contracts, JSON, network config) | `bash scripts/test-metamask-integration.sh` (default RPC: rpc-http-pub.d-bis.org) | ✅ **7/7 passed** (RPC, chain ID, WETH9, WETH10, oracle, token list, network config). Requires `cast` (Foundry) and `jq`. |
| Chain 138 Snap unit tests | `cd proxmox/metamask-integration/chain138-snap && pnpm run test` | ✅ **2/2 passed** (Jest: `onRpcRequest` error handling, `hello` confirmation). |
| Snap build | Part of `pnpm run test` (build then test) | ✅ **Passes** (mm-snap build, 186 files compiled). |
### 2.3 Completion
- **Code:** ✅ Complete (provider config, token lists, Snap with market data/bridge/swap quotes).
- **Testing:** ✅ E2E script **all 7 tests pass**; Snap unit tests **pass**. For full E2E (Playwright + MetaMask Flask), see `chain138-snap/TESTING_INSTRUCTIONS.md`.
---
## 3. LedgerLive
### 3.1 Scope
- Step 18 materials (currency, device-app snippet, coin module, signer, API, LLD/LLM, wallet-api, manual tests).
- `step-08-manual-tests/run-checklist.sh` prints the manual test plan; `test-plan.md` lists sync, receive, balance, broadcast, operations, account details.
### 3.2 Tests run
| Test | Command | Result |
|------|---------|--------|
| Checklist runner | `bash step-08-manual-tests/run-checklist.sh` | ✅ **Runs** and prints full manual test plan. |
| Manual test plan (Step 8) | Execute in Ledger Wallet (LLD/LLM) | ⏳ **Blocked** until Ledger adds Chain 138 to Ledger Live; checklist is ready. |
### 3.3 Completion
- **Code:** ✅ Complete (all 8 steps; Blockscout API fix in Step 3; gaps documented in `GAPS_AND_MISSING_INTEGRATIONS.md`).
- **Testing:** Checklist script verified; manual tests pending Ledger integration. No automated E2E in this repo (per Ledgers process, E2E runs in ledger-live monorepo after integration).
---
## 4. app-ethereum
### 4.1 Scope
- Ledger device app (C); Chain 138 entry in `src/network.c` (line 42): `{.chain_id = 138, .name = "Defi Oracle Meta", .ticker = "ETH"}`.
- `makefile_conf/chain/defi_oracle.mk` (or equivalent in fork); unit + ragger tests in `tests/`.
### 4.2 Tests run
| Test | Command | Result |
|------|---------|--------|
| Build | `make` | ⚠️ **Requires `BOLOS_SDK`** (Ledger Nano SDK). Not set in this environment; build/tests run in CI (`.github/workflows/build_and_functional_tests.yml`) on push to main/master. |
| Unit / ragger | Via Ledger reusable workflows | Run in GitHub when BOLOS_SDK and build artifacts are available. |
### 4.3 Completion
- **Code:** ✅ Complete (Chain 138 in `network.c`; fork at defiQUG/app-ethereum).
- **Testing:** Local build/tests require BOLOS_SDK; **CI is the canonical test path** (build + ragger). No change needed for “code complete”; tests are run in CI.
---
## 5. TrustWallet-Integration
### 5.1 Scope
- README, `registry-entry-chain138.json` (wallet-core `registry.json` snippet for Chain 138).
- No executable code in repo; materials are for a PR to [trustwallet/wallet-core](https://github.com/trustwallet/wallet-core).
### 5.2 Tests run
| Test | Result |
|------|--------|
| JSON validity | `registry-entry-chain138.json` is valid JSON and matches Trusts EVM chain format. |
| Integration test | When used in wallet-core: run `codegen-v2`, derivation tests, and wallet-core test suite (in Trusts repo). |
### 5.3 Completion
- **Code:** ✅ Complete (materials only; no code to run in this repo).
- **Testing:** N/A in repo; validation happens in wallet-core after PR.
---
## 6. Recommendations
1. **metamask-integration (E2E script):****Done.** Default RPC is `https://rpc-http-pub.d-bis.org`; chain-id and network config accept hex or decimal; arithmetic fixed for `set -e`. All 7 tests pass. Requires `cast` (Foundry) and `jq`.
2. **Chain 138 Snap:** Unit tests are **passing**. For full E2E (Playwright + MetaMask Flask), follow `chain138-snap/TESTING_INSTRUCTIONS.md` when needed.
3. **LedgerLive:** No further automated tests in this repo; manual test plan is ready for when Ledger adds Chain 138.
4. **app-ethereum:** Rely on GitHub Actions (build + ragger) for tests; document in README that local build requires `BOLOS_SDK` for contributors.
5. **TrustWallet-Integration:** No changes; use materials in wallet-core PR and run Trusts codegen/tests there.
---
## 7. References
- [CHAIN138_WALLET_REPOSITORIES.md](./CHAIN138_WALLET_REPOSITORIES.md) — Repo layout (`~/projects/`).
- [CHAIN138_WALLET_ECOSYSTEM_AND_RATIONALE.md](./CHAIN138_WALLET_ECOSYSTEM_AND_RATIONALE.md) — Why Snap, Ledger Live, Trust Wallet.
- LedgerLive: `GAPS_AND_MISSING_INTEGRATIONS.md` (in repo).
- Chain 138 Snap: `proxmox/metamask-integration/chain138-snap/TESTING_INSTRUCTIONS.md`, `RUNBOOK.md`.