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

Internalize simplified QRKeyring implementation #144

Open
mikesposito opened this issue Jan 15, 2025 · 0 comments · May be fixed by #60
Open

Internalize simplified QRKeyring implementation #144

mikesposito opened this issue Jan 15, 2025 · 0 comments · May be fixed by #60

Comments

@mikesposito
Copy link
Member

mikesposito commented Jan 15, 2025

The package currently used to support QR-based devices is external to MetaMask organization, and doesn't strictly follow our conventions and types for our Keyring classes.

Moreover, its current implementation includes functionality for managing UI modals related to pairing and signing.

We should evaluate the creation of an internal QRKeyring package with a simplified implementation (no UI management) with the following acceptance criteria:

  • The package uses TypeScript
  • The QRKeyring class extends the Keyring type
  • The QRKeyring class supports initialization with a CBOR string compatible with QR-based devices currently supported by MetaMask clients
  • The QRKeyring class can be used to derive the same accounts that are currently derivable with @keystonehq/metamask-airgapped-keyring
  • The QRKeyring class must support the deserialization of a state coming from @keystonehq/metamask-airgapped-keyring
  • The package must have full package-level test coverage and should be easily testable at client level with e2e
    • A Keyring Bridge is a keyring extension that can be optionally added in case the keyring structure doesn't allow easy e2e testing. This should not be needed as there is no communication transport besides QR-based messages, which can be easily mocked.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants