From bd2a429a85d27fc82e76115ec136640cbfecf9e1 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Thu, 3 Nov 2016 11:59:20 -0700 Subject: Fix account nicknaming bug When nicknaming, we weren't normalizing the input, and so we were retrieving with differently formatted addresses than we were persisting. --- app/scripts/keyring-controller.js | 5 ++++- app/scripts/lib/config-manager.js | 6 ++++-- test/unit/keyring-controller-test.js | 11 +++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js index 3bc9561e2..06c1e2761 100644 --- a/app/scripts/keyring-controller.js +++ b/app/scripts/keyring-controller.js @@ -250,7 +250,7 @@ module.exports = class KeyringController extends EventEmitter { address, name, } - this.saveAccountLabel(address, name) + return this.saveAccountLabel(address, name) } saveAccountLabel (account, label, cb) { @@ -259,6 +259,8 @@ module.exports = class KeyringController extends EventEmitter { configManager.setNicknameForWallet(address, label) if (cb) { cb(null, label) + } else { + return label } } @@ -270,6 +272,7 @@ module.exports = class KeyringController extends EventEmitter { data: k.serialize(), } }) + return this.encryptor.encryptWithKey(this.key, serialized) .then((encryptedString) => { this.configManager.setVault(encryptedString) diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js index 8f5590738..f50d95c12 100644 --- a/app/scripts/lib/config-manager.js +++ b/app/scripts/lib/config-manager.js @@ -269,13 +269,15 @@ ConfigManager.prototype.getWalletNicknames = function () { } ConfigManager.prototype.nicknameForWallet = function (account) { + const address = ethUtil.addHexPrefix(account.toLowerCase()) const nicknames = this.getWalletNicknames() - return nicknames[account] + return nicknames[address] } ConfigManager.prototype.setNicknameForWallet = function (account, nickname) { + const address = ethUtil.addHexPrefix(account.toLowerCase()) const nicknames = this.getWalletNicknames() - nicknames[account] = nickname + nicknames[address] = nickname var data = this.getData() data.walletNicknames = nicknames this.setData(data) diff --git a/test/unit/keyring-controller-test.js b/test/unit/keyring-controller-test.js index 6656583e8..eed6af2c3 100644 --- a/test/unit/keyring-controller-test.js +++ b/test/unit/keyring-controller-test.js @@ -105,6 +105,17 @@ describe('KeyringController', function() { }) }) + describe('#saveAccountLabel', function() { + it ('sets the nickname', function() { + const account = addresses[0] + var nick = 'Test nickname' + const label = keyringController.saveAccountLabel(account, nick) + assert.equal(label, nick) + + const persisted = keyringController.configManager.nicknameForWallet(account) + assert.equal(persisted, nick) + }) + }) }) -- cgit