Now any strategy for importing a private key that can be described as a pure function can be very easily turned into a MetaMask import strategy.
I've created a generic and reusable UI action called `importNewAccount(strategy, args)`.
The `strategy` is a unique identifier defined in `app/scripts/account-import-strategies`, and the `args` will be passed to the member of the `strategies` array whose key matches the strategy string.
Strategies return private key hex strings, and are used by the metamask-controller to create a new keyring, and select that new account, before calling back.
This also implements @frankiebee's idea of showing the imported account when it's been imported (my oversight!).
This commit only moves us to this architecture, keeping feature parity for private key import, but has some untested code for importing geth-style JSON files as well!
Fixes#1021
A top-right menu item now allows `Account Import`. It has a menu (with one item for now) that allows importing a private key string.
Errors are displayed, and a success navigates the user to their account list, where the imported account is labeled `LOOSE`.
Required making the getState methods for both keyringController and metamaskController async.
They both now return promises, and the main metamask-controller.getState method is now nodeified.
Will allow the UI to render loose keys differently than persisted keys.
Migrator now returns a lostAccount array that includes objects
these objects include keys of address and privateKey,
this allows the MetamaskController to restore the lost accounts
even without customizing the idStore or the KeyringController.
Also includes a patch that allows idStore to synchronously export private keys.
Implement generation of markdown for notice files.
Create npm command. Enhance notice generation.
Add test files to test multiple notices.
Add basic markdown support to notices.
Interval checks for updates.
Add extensionizer and linker
Add terms and conditions state file
Add link support to disclaimer.
Changelog addition.
Implement generation of markdown for notice files.
Create npm command. Enhance notice generation.
Add test files to test multiple notices.
Add basic markdown support to notices.
Interval checks for updates.
Add extensionizer and linker
Add terms and conditions state file
Add link support to disclaimer.
Changelog addition.
Mostly Fixes#893
A couple methods cache callbacks, and will require a larger refactor to fully denodeify.
Specifically, our methods involving web3 requests to sign a tx, sign a message, and approve or cancel either of those.
I think we should postpone those until the TxManager refactor, since it will likely handle this response caching itself.