-
Notifications
You must be signed in to change notification settings - Fork 389
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
Private key JSON import #3177
Merged
Merged
Private key JSON import #3177
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Proof of concept of importing accounts with JSON file.
ace401d
to
fc224b8
Compare
Add tabs so both text private key input and JSON file input can be handled there
Create new file input component and use it on the private key JSON import page
Show feedback on file that has been uploaded to file input component.
4 tasks
0xDaedalus
approved these changes
Apr 5, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bravo 🎉 📈
Shadowfiend
added a commit
that referenced
this pull request
Jul 7, 2023
### About this PR This PR will contain all changes for features: - [x] allow importing private keys in the keyring service (initial scope of this PR) - [x] import private keys with plain text (#3119) - [x] import private keys with JSON (#3177) - [x] backup account with mnemonic and private key export (#3252) --- ## Initial scope Resolves #3070 ### What Handle importing wallets with private keys in the keyring service: * save pk imported accounts in the encrypted vault * handle serialization and deserialization of pk imported wallets * handle signing messages with both keyrings and pk wallets * handle communication between service and redux store about pk wallets * fix types and field names in the redux store Cleanup and add more tests: - move existing keyring integration tests to the right folder - write more unit tests to cover private key imported wallets - cleanup some duplicated tests - add util functions to the test's `factories` - add function to mock local storage ### Testing - make sure unit tests and E2E are passing - test manually adding accounts and signing transactions Latest build: [extension-builds-3089](https://github.com/tahowallet/extension/suites/14105826655/artifacts/789186059) (as of Thu, 06 Jul 2023 12:56:07 GMT).
Merged
kkosiorowska
pushed a commit
that referenced
this pull request
Jul 14, 2023
## What's Changed * Add private key onboarding flow by @jagodarybacka in #3119 * Private key JSON import by @jagodarybacka in #3177 * Allow export of private keys and mnemonics by @jagodarybacka in #3248 * Export private key form by @jagodarybacka in #3255 * Unlock screen for the account backup by @kkosiorowska in #3257 * Show mnemonic menu by @jagodarybacka in #3259 * Fix background blur issue by @jagodarybacka in #3265 * Account backup UI fixes by @jagodarybacka in #3270 * Fix unhiding removed accounts by @jagodarybacka in #3282 * New error for incorrectly decrypted JSON file by @jagodarybacka in #3293 * Export private keys from HD wallet addresses by @jagodarybacka in #3253 * Refactor keyring redux slice to remove `importing` field by @jagodarybacka in #3309 * 📚 Accounts backup by @kkosiorowska in #3252 * Catch Enter keypress on Unlock screen by @jagodarybacka in #3355 * Rename `keyring` to `internal signer` and other improvements by @jagodarybacka in #3331 * 🗝 QA - Accounts backup and private key import by @jagodarybacka in #3266 * Remove private key signers if they are replaced by accounts from HD wallet by @jagodarybacka in #3377 * RFB 4: One-Off Keyring Design by @Shadowfiend in #3372 * Copy to clipboard warning by @kkosiorowska in #3488 * Allow setting custom auto-lock timer by @hyphenized in #3477 * Use Argon2 for encrypted vaults by @jagodarybacka in #3502 * 👑 Private keys import and accounts backup by @jagodarybacka in #3089 * Untrusted assets should not block the addition of custom tokens by @kkosiorowska in #3491 * Flip updated dApp connections flag by @Shadowfiend in #3492 * v0.41.0 by @Shadowfiend in #3531 * Switch to a given network if adding a network that is already added. by @0xDaedalus in #3154 * Remove waiting for Loading Doggo component in E2E tests by @jagodarybacka in #3541 * Squeeze content to better fit on Swaps page by @jagodarybacka in #3542 * Refactor of terms for verified/unverified assets by @kkosiorowska in #3528 * Fix ChainList styling by @fulldecent in #3547 * Update release checklist by @jagodarybacka in #3548 * Fix custom asset price fetching by @hyphenized in #3508 * Sticky Defaults: Make Taho-as-default replace MetaMask in almost all cases by @Shadowfiend in #3546 ## New Contributors * @fulldecent made their first contribution in #3547 **Full Changelog**: v0.41.0...v0.42.0 Latest build: [extension-builds-3549](https://github.com/tahowallet/extension/suites/14268975651/artifacts/801826435) (as of Thu, 13 Jul 2023 09:51:56 GMT).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
This PR introduces importing accounts with JSON files (keystore files). In this PR there is a new tab next to the plain text private key import tab, for importing private keys with JSON files.
Testing
Conclusions for the spike
Findings:
I see not much harm in having an import feature, I think it will be nice to have but much less used than plain text private keys. For sure we shouldn't bother implementing JSON export feature.
Demo
Screen.Recording.2023-03-30.at.18.30.11.mov
Latest build: extension-builds-3177 (as of Tue, 04 Apr 2023 10:40:41 GMT).