diff options
Add ability to import v3 JSON wallets
There is now a menu item labeled "JSON File" for importing, and it can digest either:
- v1 MyEtherWallet JSON files
- v3 Account files (used by Geth, Mist, and MyEtherWallet).
Fixes #715
Diffstat (limited to 'app/scripts/account-import-strategies')
-rw-r--r-- | app/scripts/account-import-strategies/index.js | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/app/scripts/account-import-strategies/index.js b/app/scripts/account-import-strategies/index.js index 8f4456cdf..d5124eb7f 100644 --- a/app/scripts/account-import-strategies/index.js +++ b/app/scripts/account-import-strategies/index.js @@ -7,8 +7,7 @@ const accountImporter = { importAccount(strategy, args) { try { const importer = this.strategies[strategy] - const wallet = importer.apply(null, args) - const privateKeyHex = walletToPrivateKey(wallet) + const privateKeyHex = importer.apply(null, args) return Promise.resolve(privateKeyHex) } catch (e) { return Promise.reject(e) @@ -18,11 +17,20 @@ const accountImporter = { strategies: { 'Private Key': (privateKey) => { const stripped = ethUtil.stripHexPrefix(privateKey) - const buffer = new Buffer(stripped, 'hex') - return Wallet.fromPrivateKey(buffer) + return stripped }, 'JSON File': (input, password) => { - const wallet = importers.fromEtherWallet(input, password) + let wallet + try { + wallet = importers.fromEtherWallet(input, password) + } catch (e) { + console.log('Attempt to import as EtherWallet format failed, trying V3...') + } + + if (!wallet) { + wallet = Wallet.fromV3(input, password, true) + } + return walletToPrivateKey(wallet) }, }, |