Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPIC: Align all EVM Keyrings to a common Keyring API #5152

Open
mikesposito opened this issue Jan 15, 2025 · 0 comments
Open

EPIC: Align all EVM Keyrings to a common Keyring API #5152

mikesposito opened this issue Jan 15, 2025 · 0 comments

Comments

@mikesposito
Copy link
Member

mikesposito commented Jan 15, 2025

What is this about?

The Keyrings are among the application's most security-critical components. They manage private keys and enable seamless interaction with hardware wallets and other accounts.

However, the current keyring implementations suffer from architectural inconsistencies, outdated patterns, and technical debt, making them difficult to maintain, extend, and test. This has resulted in bugs, regressions, and blocked feature development, such as adding support for multiple Ledger devices.

The remaining work involves aligning all EVM native keyrings (HD, Ledger, Trezor, QR, and Lattice) to a standardized API, migrating non-TypeScript keyrings like HD to improve type safety and maintainability, and implementing bridges to enable comprehensive end-to-end testing.

Primary Outcome/Benefits

  • Enhanced Security: Robust Keyrings reduce vulnerabilities.
  • Improved Maintainability: Standardized API and TypeScript simplify updates.
  • Faster Feature Development: Unblocks features like multiple Ledger devices.
  • Better Testability: End-to-end testing reduces bugs and regressions.
  • Consistent Architecture: Unified Keyring implementations improve usability.
  • Higher Code Quality: TypeScript migration ensures type safety.
  • Seamless User Experience: Stable, reliable interactions with accounts and wallets.

This EPIC is intended as an index for all the work needed to reach this goal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant