aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2018-03-28 10:10:31 +0800
committerGitHub <noreply@github.com>2018-03-28 10:10:31 +0800
commitf7a2dc984ef352de6bdbdd50bb6671593dc96048 (patch)
tree068b9f65e9a965163d586da80bbaca24027b2413
parent00952c899bde2c427a851144d1f7830eec731151 (diff)
parentd8357413aca53ea3aef45525f5c37daa0e354ba7 (diff)
downloadtangerine-wallet-browser-f7a2dc984ef352de6bdbdd50bb6671593dc96048.tar.gz
tangerine-wallet-browser-f7a2dc984ef352de6bdbdd50bb6671593dc96048.tar.zst
tangerine-wallet-browser-f7a2dc984ef352de6bdbdd50bb6671593dc96048.zip
Merge pull request #3760 from MetaMask/i3439-ResetCacheOnAccountReset
Fix bug where resetAccount does not clear network cache
-rw-r--r--CHANGELOG.md2
-rw-r--r--app/scripts/metamask-controller.js73
2 files changed, 41 insertions, 34 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fa4493278..06cf51c14 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
## Current Master
+- Fix bug where the "Reset account" feature would not clear the network cache.
+
## 4.4.0 Mon Mar 26 2018
- Internationalization: Taiwanese, Thai, Slovenian
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index ff7b66572..4422a5cf3 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -49,7 +49,7 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* @constructor
- * @param {Object} opts
+ * @param {Object} opts
*/
constructor (opts) {
super()
@@ -297,8 +297,8 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* The metamask-state of the various controllers, made available to the UI
- *
- * @returns {Object} status
+ *
+ * @returns {Object} status
*/
getState () {
const wallet = this.configManager.getWallet()
@@ -336,8 +336,8 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Returns an api-object which is consumed by the UI
- *
- * @returns {Object}
+ *
+ * @returns {Object}
*/
getApi () {
const keyringController = this.keyringController
@@ -367,7 +367,7 @@ module.exports = class MetamaskController extends EventEmitter {
placeSeedWords: this.placeSeedWords.bind(this),
verifySeedPhrase: nodeify(this.verifySeedPhrase, this),
clearSeedWordCache: this.clearSeedWordCache.bind(this),
- resetAccount: this.resetAccount.bind(this),
+ resetAccount: nodeify(this.resetAccount, this),
importAccountWithStrategy: this.importAccountWithStrategy.bind(this),
// vault management
@@ -428,14 +428,14 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Creates a new Vault(?) and create a new keychain(?)
- *
+ *
* A vault is ...
- *
+ *
* A keychain is ...
- *
+ *
*
* @param {} password
- *
+ *
* @returns {} vault
*/
async createNewVaultAndKeychain (password) {
@@ -481,9 +481,9 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Retrieves the first Identiy from the passed Vault and selects the related address
- *
+ *
* An Identity is ...
- *
+ *
* @param {} vault
*/
selectFirstIdentity (vault) {
@@ -497,8 +497,8 @@ module.exports = class MetamaskController extends EventEmitter {
//
/**
- * Adds a new account to ...
- *
+ * Adds a new account to ...
+ *
* @returns {} keyState
*/
async addNewAccount () {
@@ -524,10 +524,10 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Adds the current vault's seed words to the UI's state tree.
- *
+ *
* Used when creating a first vault, to allow confirmation.
* Also used when revealing the seed words in the confirmation view.
- */
+ */
placeSeedWords (cb) {
this.verifySeedPhrase()
@@ -542,7 +542,7 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Verifies the validity of the current vault's seed phrase.
- *
+ *
* Validity: seed phrase restores the accounts belonging to the current vault.
*
* Called when the first account is created and on unlocking the vault.
@@ -573,27 +573,32 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Remove the primary account seed phrase from the UI's state tree.
- *
+ *
* The seed phrase remains available in the background process.
- *
+ *
*/
clearSeedWordCache (cb) {
this.configManager.setSeedWords(null)
cb(null, this.preferencesController.getSelectedAddress())
}
-
+
/**
* ?
*/
- resetAccount (cb) {
+ async resetAccount (cb) {
const selectedAddress = this.preferencesController.getSelectedAddress()
this.txController.wipeTransactions(selectedAddress)
- cb(null, selectedAddress)
+
+ const networkController = this.networkController
+ const oldType = networkController.getProviderConfig().type
+ await networkController.setProviderType(oldType, true)
+
+ return selectedAddress
}
/**
* Imports an account ... ?
- *
+ *
* @param {} strategy
* @param {} args
* @param {} cb
@@ -636,9 +641,9 @@ module.exports = class MetamaskController extends EventEmitter {
}
// Prefixed Style Message Signing Methods:
-
+
/**
- *
+ *
* @param {} msgParams
* @param {} cb
*/
@@ -657,7 +662,7 @@ module.exports = class MetamaskController extends EventEmitter {
}
})
}
-
+
/**
* @param {} msgParams
*/
@@ -678,7 +683,7 @@ module.exports = class MetamaskController extends EventEmitter {
return this.getState()
})
}
-
+
/**
* @param {} msgParams
*/
@@ -699,13 +704,13 @@ module.exports = class MetamaskController extends EventEmitter {
return this.getState()
})
}
-
+
// ---------------------------------------------------------------------------
// Account Restauration
/**
* ?
- *
+ *
* @param {} migratorOutput
*/
restoreOldVaultAccounts (migratorOutput) {
@@ -716,7 +721,7 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* ?
- *
+ *
* @param {} migratorOutput
*/
restoreOldLostAccounts (migratorOutput) {
@@ -730,9 +735,9 @@ module.exports = class MetamaskController extends EventEmitter {
/**
* Import (lost) Accounts
- *
+ *
* @param {Object} {lostAccounts} @Array accounts <{ address, privateKey }>
- *
+ *
* Uses the array's private keys to create a new Simple Key Pair keychain
* and add it to the keyring controller.
*/
@@ -825,7 +830,7 @@ module.exports = class MetamaskController extends EventEmitter {
if (cb && typeof cb === 'function') {
cb(null, this.getState())
}
- }
+ }
cancelPersonalMessage (msgId, cb) {
const messageManager = this.personalMessageManager
@@ -980,7 +985,7 @@ module.exports = class MetamaskController extends EventEmitter {
const percentileNum = percentile(50, lowestPrices)
const percentileNumBn = new BN(percentileNum)
return '0x' + percentileNumBn.mul(GWEI_BN).toString(16)
- }
+ }
//=============================================================================
// CONFIG