Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
120 lines
6.2 KiB
Markdown
120 lines
6.2 KiB
Markdown
# 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 1–8 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 1–8 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 Ledger’s 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 Trust’s EVM chain format. |
|
||
| Integration test | When used in wallet-core: run `codegen-v2`, derivation tests, and wallet-core test suite (in Trust’s 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 Trust’s 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`.
|