mirror of
https://github.com/luxfi/extension.git
synced 2026-10-30 16:56:33 +00:00
- Multi-chain wallet for Lux ecosystem (Lux, Zoo, SPC, Hanzo networks) - Support for external EVM chains (Ethereum, Arbitrum, Base, etc.) - WXT-based build system for Chrome and Firefox - Ledger hardware wallet integration - Security engine for transaction risk analysis - Address book and custom networks support
4.0 KiB
4.0 KiB
Rabby Features Migration Tracker
This document tracks the migration of features from the Rabby-based xwallet to the Lux Exchange extension.
Overview
The Lux Exchange extension is built on a modern stack (WXT, React 19, Tamagui) and integrates deeply with the Uniswap/Lux DEX ecosystem. We're augmenting it with battle-tested features from the Rabby wallet fork (xwallet).
Feature Status
Critical (Must Have)
| Feature | Status | Source | Target | Notes |
|---|---|---|---|---|
| Ledger Support | 🟡 IN PROGRESS | xwallet/src/background/service/keyring/eth-ledger-keyring.ts |
src/features/hardware-wallets/ledger/ |
WebHID, HD paths - Bridge implemented |
| Trezor Support | 🔴 TODO | xwallet/src/background/service/keyring/eth-trezor-keyring.ts |
src/features/hardware-wallets/trezor/ |
WebExtension transport |
| Keystone Support | 🔴 TODO | xwallet/src/background/service/keyring/eth-keystone-keyring.ts |
src/features/hardware-wallets/keystone/ |
QR code signing |
| WalletConnect v2 | 🔴 TODO | xwallet keyring |
src/features/walletconnect/ |
Remote signing |
| Custom Networks | 🟢 DONE | wallet_addEthereumChain |
src/features/custom-networks/ |
Service implemented |
| Custom Tokens | 🔴 TODO | wallet_watchAsset |
src/features/custom-tokens/ |
Token import |
High Priority
| Feature | Status | Source | Target | Notes |
|---|---|---|---|---|
| Security Engine | 🟢 DONE | xwallet/src/background/service/securityEngine.ts |
src/background/services/security/ |
Core engine implemented |
| Approval Manager | 🔴 TODO | xwallet/src/ui/views/ApprovalManagePage/ |
src/features/approval-management/ |
Batch revoke |
| Address Book | 🟢 DONE | xwallet/src/background/service/contactBook.ts |
src/features/address-book/ |
Service implemented |
| Tx Simulation | 🔴 TODO | Via security engine | src/features/tx-simulation/ |
Preview |
| Safe/Gnosis | 🔴 TODO | xwallet/src/background/service/keyring/eth-gnosis-keyring.ts |
src/features/multisig/ |
Multisig |
Medium Priority
| Feature | Status | Source | Target | Notes |
|---|---|---|---|---|
| Custom Testnets | 🔴 TODO | xwallet/src/background/service/customTestnet.ts |
src/features/custom-networks/testnets/ |
Custom EVM |
| Bridge Integration | 🔴 TODO | xwallet/src/background/service/bridge.ts |
src/features/bridge/ |
Multi-aggregator |
| Advanced Gas UI | 🔴 TODO | preference service | src/features/gas/ |
Custom presets |
| DApp Favorites | 🔴 TODO | xwallet/src/background/service/permission.ts |
src/features/dapp/ |
Pin/favorite |
Architecture Decisions
Hardware Wallet Integration
The exchange extension uses WXT (Vite-based) which requires different handling than webpack:
- Use offscreen documents for WebHID/USB communication
- Maintain MV3 compatibility with service worker limitations
- Share keyring interfaces with existing wallet package
State Management
- Extend existing Redux store with new slices for hardware wallets
- Add migrations for schema changes
- Use Redux Saga for async hardware operations
UI Components
- Build on existing Tamagui component library
- Follow feature-based folder structure
- Integrate with existing navigation system
Dependencies to Add
{
"@ledgerhq/hw-app-eth": "^6.x",
"@ledgerhq/hw-transport-webusb": "^6.x",
"@trezor/connect-webextension": "^9.x",
"@keystonehq/keystone-sdk": "^0.x",
"@walletconnect/web3wallet": "^1.x",
"@safe-global/safe-core-sdk": "^3.x"
}
Migration Notes
From xwallet
The xwallet codebase uses:
- Webpack build system
- Class-based services with singleton pattern
- Chrome storage API directly
- Broadcast messaging pattern
We adapt to:
- WXT/Vite build system
- Functional approach with hooks where possible
- Redux persist with webextension storage adapter
- Redux action dispatch pattern
Testing
- Port relevant tests from xwallet
- Add E2E tests for hardware wallet flows
- Mock hardware wallet devices in tests