Skip to content

feat: multi-account header, signing & balance support#32

Merged
BitHighlander merged 0 commit intomasterfrom
develop
Mar 1, 2026
Merged

feat: multi-account header, signing & balance support#32
BitHighlander merged 0 commit intomasterfrom
develop

Conversation

@BitHighlander
Copy link
Collaborator

Summary

  • Header refactor: Split monolithic NetworkAccountHeader (837 lines) into focused components — NetworkDropdown, AccountDropdown, AddNetworkModal, and shared utilities
  • ETH multi-account: Show all ETH-derived accounts on every EVM chain (Polygon, Base, Arbitrum, etc.), not just Ethereum mainnet. Add Account button works from any EVM network view
  • Signing fix: Replace hardcoded m/44'/60'/0'/0/0 derivation path with dynamic lookup based on selected account. Update global ADDRESS on account switch so eth_accounts, personal_sign, eth_sendTransaction, and eth_signTypedData_v4 all use the correct account
  • Balance filtering: AssetDetail now shows per-account balance instead of combined total across all accounts
  • Sticky header: Header stays visible above drawers (Send/Receive/AssetDetail) with proper z-index layering
  • UX improvements: Chainlist.org link, interactive address copy, derivation path display, scrolling fixes

Key files changed

File Change
ethereumHandler.ts getAddressNListForAddress() helper, dynamic path in signTransaction/signTypedData/signMessage
background/index.ts Update ADDRESS on SET_ASSET_CONTEXT for EVM accounts
header/headerUtils.ts buildNetworkList() and buildAccountList() — ETH accounts visible on all EVM chains
header/NetworkDropdown.tsx Network selector grouped by chain family
header/AccountDropdown.tsx Account selector with derivation paths, add/remove
AssetDetail.tsx Filter balances by selected account address
SidePanel.tsx Sticky header, drawer height calc, asset context lifecycle

Test plan

  • Open side panel, verify header shows KeepKey branding on dashboard
  • Click a balance row — asset drawer opens below header, header stays visible
  • Network dropdown shows chains grouped by family (EVM, UTXO, Cosmos, Other)
  • Account dropdown on Ethereum shows Account 0, Account 1, etc. with derivation paths
  • Account dropdown on Polygon/Base/Arbitrum also shows all ETH accounts (not just account 0)
  • Add Account button works from any EVM chain view
  • Switching accounts updates the displayed balance to that account only
  • Sign a transaction from Account 1 — verify device signs with correct derivation path
  • personal_sign from Account 1 — verify correct address used
  • Close asset drawer — header returns to branding mode

🤖 Generated with Claude Code

@BitHighlander BitHighlander merged commit c415975 into master Mar 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant