aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Serrano <kevgagser@gmail.com>2016-11-04 06:40:23 +0800
committerKevin Serrano <kevgagser@gmail.com>2016-11-04 06:40:23 +0800
commit2afc06287dfd1a87bd247234c9a04b92a8394cac (patch)
tree246d62342150415b391582486405bc728a7a0419
parente0246975a7a40a72cc68fb3dbe5782c9c219fea2 (diff)
downloadtangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.tar
tangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.tar.gz
tangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.tar.bz2
tangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.tar.lz
tangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.tar.xz
tangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.tar.zst
tangerine-wallet-browser-2afc06287dfd1a87bd247234c9a04b92a8394cac.zip
Implement private key exporting.
-rw-r--r--app/scripts/keyring-controller.js9
-rw-r--r--app/scripts/keyrings/hd.js16
2 files changed, 22 insertions, 3 deletions
diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js
index 505414c88..aa303c43c 100644
--- a/app/scripts/keyring-controller.js
+++ b/app/scripts/keyring-controller.js
@@ -353,7 +353,6 @@ module.exports = class KeyringController extends EventEmitter {
gasMultiplier: configManager.getGasMultiplier() || 1,
}
- console.log('addUnconfirmedTransaction:', txData)
// keep the onTxDoneCb around for after approval/denial (requires user interaction)
// This onTxDoneCb fires completion to the Dapp's write operation.
@@ -525,7 +524,13 @@ module.exports = class KeyringController extends EventEmitter {
}
exportAccount(address, cb) {
- cb(null, '0xPrivateKey')
+ try {
+ const keyring = this.getKeyringForAccount(address)
+ const privateKey = keyring.exportAccount(normalize(address))
+ cb(null, privateKey)
+ } catch (e) {
+ cb(e)
+ }
}
getNetwork(err) {
diff --git a/app/scripts/keyrings/hd.js b/app/scripts/keyrings/hd.js
index d0ebee419..4bfc56c15 100644
--- a/app/scripts/keyrings/hd.js
+++ b/app/scripts/keyrings/hd.js
@@ -48,6 +48,11 @@ module.exports = class HdKeyring extends EventEmitter {
}
}
+ exportAccount(address) {
+ const wallet = this.getWalletForAccount(address)
+ return wallet.getPrivateKey().toString('hex')
+ }
+
addAccounts(n = 1) {
if (!this.root) {
this.initFromMnemonic(bip39.generateMnemonic())
@@ -87,7 +92,16 @@ module.exports = class HdKeyring extends EventEmitter {
}
getWalletForAccount(account) {
- return this.wallets.find(w => w.getAddress().toString('hex') === account)
+ return this.wallets.find((w) => {
+ const address = w.getAddress().toString('hex')
+ return ((address === account) || (normalize(address) === account))
+ })
}
+
+
+}
+
+function normalize(address) {
+ return ethUtil.addHexPrefix(address.toLowerCase())
}