1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

added reset account feature

This commit is contained in:
Bruno Barbieri 2018-01-31 03:33:15 -05:00
parent 1a32690a12
commit e6fda855a5
6 changed files with 52 additions and 0 deletions

View File

@ -2,6 +2,7 @@
## Current Master ## Current Master
- Add a "reset account" feature to Settings
- Add warning for importing some kinds of files. - Add warning for importing some kinds of files.
## 3.13.8 2018-1-29 ## 3.13.8 2018-1-29

View File

@ -152,6 +152,10 @@ module.exports = class TransactionController extends EventEmitter {
} }
} }
wipeTransactions(){
this.txStateManager.wipeTransactions();
}
// Adds a tx to the txlist // Adds a tx to the txlist
addTx (txMeta) { addTx (txMeta) {
this.txStateManager.addTx(txMeta) this.txStateManager.addTx(txMeta)

View File

@ -221,6 +221,10 @@ module.exports = class TransactionStateManger extends EventEmitter {
this._setTxStatus(txId, 'failed') this._setTxStatus(txId, 'failed')
} }
wipeTransactions(){
this._saveTxList([]);
}
// //
// PRIVATE METHODS // PRIVATE METHODS
// //

View File

@ -348,6 +348,7 @@ module.exports = class MetamaskController extends EventEmitter {
addNewAccount: nodeify(this.addNewAccount, this), addNewAccount: nodeify(this.addNewAccount, this),
placeSeedWords: this.placeSeedWords.bind(this), placeSeedWords: this.placeSeedWords.bind(this),
clearSeedWordCache: this.clearSeedWordCache.bind(this), clearSeedWordCache: this.clearSeedWordCache.bind(this),
resetAccount: this.resetAccount.bind(this),
importAccountWithStrategy: this.importAccountWithStrategy.bind(this), importAccountWithStrategy: this.importAccountWithStrategy.bind(this),
// vault management // vault management
@ -604,6 +605,13 @@ module.exports = class MetamaskController extends EventEmitter {
cb(null, this.preferencesController.getSelectedAddress()) cb(null, this.preferencesController.getSelectedAddress())
} }
resetAccount(cb){
this.txController.wipeTransactions();
cb(null, this.preferencesController.getSelectedAddress())
}
importAccountWithStrategy (strategy, args, cb) { importAccountWithStrategy (strategy, args, cb) {
accountImporter.importAccount(strategy, args) accountImporter.importAccount(strategy, args)
.then((privateKey) => { .then((privateKey) => {

View File

@ -47,12 +47,14 @@ var actions = {
addNewAccount, addNewAccount,
NEW_ACCOUNT_SCREEN: 'NEW_ACCOUNT_SCREEN', NEW_ACCOUNT_SCREEN: 'NEW_ACCOUNT_SCREEN',
navigateToNewAccountScreen, navigateToNewAccountScreen,
resetAccount,
showNewVaultSeed: showNewVaultSeed, showNewVaultSeed: showNewVaultSeed,
showInfoPage: showInfoPage, showInfoPage: showInfoPage,
// seed recovery actions // seed recovery actions
REVEAL_SEED_CONFIRMATION: 'REVEAL_SEED_CONFIRMATION', REVEAL_SEED_CONFIRMATION: 'REVEAL_SEED_CONFIRMATION',
revealSeedConfirmation: revealSeedConfirmation, revealSeedConfirmation: revealSeedConfirmation,
requestRevealSeed: requestRevealSeed, requestRevealSeed: requestRevealSeed,
// unlock screen // unlock screen
UNLOCK_IN_PROGRESS: 'UNLOCK_IN_PROGRESS', UNLOCK_IN_PROGRESS: 'UNLOCK_IN_PROGRESS',
UNLOCK_FAILED: 'UNLOCK_FAILED', UNLOCK_FAILED: 'UNLOCK_FAILED',
@ -308,6 +310,20 @@ function requestRevealSeed (password) {
} }
} }
function resetAccount () {
return (dispatch) => {
background.resetAccount((err, account) => {
dispatch(actions.hideLoadingIndication())
if (err) {
dispatch(actions.displayWarning(err.message))
}
log.info('Transaction history reset for ' + account)
dispatch(actions.showAccountsPage())
})
}
}
function addNewKeyring (type, opts) { function addNewKeyring (type, opts) {
return (dispatch) => { return (dispatch) => {
dispatch(actions.showLoadingIndication()) dispatch(actions.showLoadingIndication())

View File

@ -55,6 +55,7 @@ ConfigScreen.prototype.render = function () {
h('.flex-space-around', { h('.flex-space-around', {
style: { style: {
padding: '20px', padding: '20px',
overflow: 'auto',
}, },
}, [ }, [
@ -142,6 +143,24 @@ ConfigScreen.prototype.render = function () {
}, 'Reveal Seed Words'), }, 'Reveal Seed Words'),
]), ]),
h('hr.horizontal-line'),
h('div', {
style: {
marginTop: '20px',
},
}, [
h('button', {
style: {
alignSelf: 'center',
},
onClick (event) {
event.preventDefault()
state.dispatch(actions.resetAccount())
},
}, 'Reset Account'),
]),
]), ]),
]), ]),
]) ])