Files
LedgerLive/GAPS_AND_MISSING_INTEGRATIONS.md

6.1 KiB
Raw Permalink Blame History

Ledger Chain 138 Integration — Gaps and Missing Integrations

Last Updated: 2026-02-12
Purpose: Test results and checklist of gaps, fixes, and possible missing integrations for the 8-step Ledger codebase.


Tests performed

Check Result
Step 8 run-checklist.sh Runs and prints full manual test plan
Step 1 currency vs eip155-138.json chainId 138, slip44 60, explorer URLs match
Step 5 RPC list vs ADD_CHAIN138 doc Same public RPCs and explorer
Step 3 explorer API Fixed — was Etherscan-style; now uses Blockscout v2 GET /api/v2/addresses/{address}/transactions
Step 4 signer types vs hw-app-eth publicKey used; Ledger may use pubKey in some APIs — confirm in ledger-live
Step 6 config default shape ⚠️ Ledger live-config may expect different shape (e.g. status: "active" string); confirm in ledger-live
Step 7 Wallet API ⚠️ Ethereum family may already support multiple chainIds; our snippets are for extension only

Gaps addressed in repo

  1. Step 3 — Blockscout API
    network-explorer.ts previously used Etherscan-style module=account&action=txlist. Blockscout uses REST v2: GET /api/v2/addresses/{address_hash}/transactions with pagination via next_page_params (block_number, index, items_count). The implementation was updated to use this API and export EXPLORER_API_V2.

Possible missing integrations (to add when Ledger confirms)

1. Tokens (CAL / token list)

  • Gap: No Step 1-style token entries or Crypto Assets List (CAL) for Chain 138 tokens (e.g. LINK, WETH, cUSDT, cUSDC).
  • Action: After Ledger adds the chain, follow Tokens integration: device app (if needed), API, CAL. Provide token contract addresses from CHAIN138_TOKEN_ADDRESSES.

2. Swap

  • Gap: No swap provider or Exchange SDK integration for Chain 138.
  • Action: Optional; only if Ledger or a partner will support swap on Chain 138. See Swap integration.

3. Staking

  • Gap: No staking API or UI for Chain 138 (e.g. validator staking if applicable).
  • Action: Only if Chain 138 has staking and Ledger supports it; follow Staking strategy.

4. Clear Signing plugin (dApps)

  • Gap: No Clear Signing plugin for Chain 138specific contract calls (e.g. CCIP, bridge) so the device shows human-readable descriptions.
  • Action: Optional; see Clear Signing for dApps and Write a plugin.

5. i18n (LLD / LLM error keys)

  • Gap: Step 6 README says “add error translation keys” but does not list the exact keys or strings.
  • Action: When adding the currency to LLD/LLM, copy the same error keys used for Ethereum (or the family) and add any Chain 138specific messages. Ledgers contribution guide will specify the key format (e.g. errors.defi_oracle_meta_mainnet.*).

6. live-common supported currencies (exact files)

  • Gap: Step 6 references live-common-set-supported-currencies.js and live-common-setup.js; exact paths can differ by ledger-live version (e.g. under apps/ledger-live-desktop/ or generated).
  • Action: After cloning ledger-live, search for where supported currencies are set and add defi_oracle_meta_mainnet there; confirm file names in the current branch.

7. wallet-api FAMILIES and union types

  • Gap: Step 7 snippets show validation/types/serializer for Ethereum with chainId 138; the actual wallet-api repo may extend Ethereum family instead of adding a new family. The FAMILIES array and Transaction union may not need a new entry if Ethereum already supports multiple chainIds.
  • Action: Check wallet-api packages/core/src/families/ethereum and common.ts; if chainId is already a field in the schema, add 138 to allowed values and ensure Ledger Wallet adapter maps it.

8. Currency optional fields

  • Gap: Step 1 currency did not set blockAvgTime or disableCountervalue.
  • Status: Addressedstep-01-currency/currencies.chain138.ts now includes blockAvgTime: 2. Uncomment disableCountervalue: true in the file if fiat should not be shown for Chain 138.

9. App-ethereum icon for Chain 138

  • Gap: Step 2 README mentions “Ledger may require a network icon.” Our app-ethereum fork has the network entry but may need an icon asset for the device UI.
  • Action: If Ledger requests an icon, follow Device App Kit deliverables (Icons) or provide a standard Ethereum-style icon for Chain 138.

10. E2E and integration tests

  • Gap: Step 8 is manual only; no automated E2E or integration test scripts in this repo.
  • Action: Ledgers flow includes E2E and Integration tests. After integration, add or run these in the ledger-live monorepo for Chain 138.

Summary

Category Status
Fixed in repo Step 3 Blockscout API (v2)
Confirm with Ledger Step 6 config shape, Step 7 extend vs new family, Step 4 pubKey vs publicKey
Add when needed Tokens/CAL, optional Swap/Staking, Clear Signing plugin, i18n keys, blockAvgTime/disableCountervalue, app-ethereum icon
Discover at integration time Exact LLD/LLM currency list file paths, E2E/integration test setup

Use this document alongside LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE.md and the step READMEs when implementing or handing off to Ledger.