From 3f50243ceffd953511556ecfc09554f7da1f07fe Mon Sep 17 00:00:00 2001 From: Brad Decker Date: Thu, 2 Feb 2023 10:46:22 -0600 Subject: [PATCH] Allow background to handle forgotten password flow (#17501) --- app/scripts/metamask-controller.js | 2 ++ ui/ducks/app/app.js | 10 ---------- ui/ducks/app/app.test.js | 2 -- ui/pages/home/home.container.js | 2 +- ui/pages/unlock-page/unlock-page.container.js | 2 -- ui/store/actionConstants.ts | 1 - ui/store/actions.js | 9 --------- ui/store/actions.test.js | 12 ------------ 8 files changed, 3 insertions(+), 37 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 4917caaa6..e2ea8b866 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -4209,6 +4209,8 @@ export default class MetamaskController extends EventEmitter { }; }); + this.unMarkPasswordForgotten(); + // In the current implementation, this handler is triggered by a // KeyringController event. Other controllers subscribe to the 'unlock' // event of the MetaMaskController itself. diff --git a/ui/ducks/app/app.js b/ui/ducks/app/app.js index 4eb705573..29f69e660 100644 --- a/ui/ducks/app/app.js +++ b/ui/ducks/app/app.js @@ -146,12 +146,6 @@ export default function reduceApp(state = {}, action) { accountDetail: {}, }; - case actionConstants.FORGOT_PASSWORD: - return { - ...appState, - forgottenPassword: action.value, - }; - case actionConstants.SHOW_SEND_TOKEN_PAGE: return { ...appState, @@ -180,9 +174,6 @@ export default function reduceApp(state = {}, action) { case actionConstants.SHOW_ACCOUNT_DETAIL: return { ...appState, - forgottenPassword: appState.forgottenPassword - ? !appState.forgottenPassword - : null, accountDetail: { subview: 'transactions', accountExport: 'none', @@ -196,7 +187,6 @@ export default function reduceApp(state = {}, action) { isLoading: false, warning: null, scrollToBottom: false, - forgottenPassword: false, }; case actionConstants.SHOW_CONF_TX_PAGE: diff --git a/ui/ducks/app/app.test.js b/ui/ducks/app/app.test.js index 4a036d633..0ef6b1723 100644 --- a/ui/ducks/app/app.test.js +++ b/ui/ducks/app/app.test.js @@ -132,7 +132,6 @@ describe('App State', () => { type: actions.SHOW_ACCOUNT_DETAIL, value: 'context address', }); - expect(state.forgottenPassword).toBeNull(); // default expect(state.accountDetail.subview).toStrictEqual('transactions'); // default expect(state.accountDetail.accountExport).toStrictEqual('none'); // default expect(state.accountDetail.privateKey).toStrictEqual(''); // default @@ -163,7 +162,6 @@ describe('App State', () => { expect(state.isLoading).toStrictEqual(false); expect(state.warning).toBeNull(); expect(state.scrollToBottom).toStrictEqual(false); - expect(state.forgottenPassword).toStrictEqual(false); }); it('shows confirm tx page', () => { diff --git a/ui/pages/home/home.container.js b/ui/pages/home/home.container.js index 1bf9a85bc..667e68020 100644 --- a/ui/pages/home/home.container.js +++ b/ui/pages/home/home.container.js @@ -76,7 +76,7 @@ const mapStateToProps = (state) => { firstTimeFlowType, completedOnboarding, } = metamask; - const { forgottenPassword } = appState; + const { forgottenPassword } = metamask; const totalUnapprovedCount = getTotalUnapprovedCount(state); const swapsEnabled = getSwapsFeatureIsLive(state); const pendingConfirmations = getUnapprovedTemplatedConfirmations(state); diff --git a/ui/pages/unlock-page/unlock-page.container.js b/ui/pages/unlock-page/unlock-page.container.js index eb1be797a..0ca38a3cd 100644 --- a/ui/pages/unlock-page/unlock-page.container.js +++ b/ui/pages/unlock-page/unlock-page.container.js @@ -9,7 +9,6 @@ import { } from '../../helpers/constants/routes'; import { tryUnlockMetamask, - forgotPassword, markPasswordForgotten, forceUpdateMetamaskState, showModal, @@ -27,7 +26,6 @@ const mapStateToProps = (state) => { const mapDispatchToProps = (dispatch) => { return { - forgotPassword: () => dispatch(forgotPassword()), tryUnlockMetamask: (password) => dispatch(tryUnlockMetamask(password)), markPasswordForgotten: () => dispatch(markPasswordForgotten()), forceUpdateMetamaskState: () => forceUpdateMetamaskState(dispatch), diff --git a/ui/store/actionConstants.ts b/ui/store/actionConstants.ts index ba4ee4d4b..309d8309b 100644 --- a/ui/store/actionConstants.ts +++ b/ui/store/actionConstants.ts @@ -17,7 +17,6 @@ export const ACCOUNT_CHANGED = 'ACCOUNT_CHANGED'; export const CHAIN_CHANGED = 'CHAIN_CHANGED'; export const ADDRESS_BOOK_UPDATED = 'ADDRESS_BOOK_UPDATED'; export const GAS_FEE_ESTIMATES_UPDATED = 'GAS_FEE_ESTIMATES_UPDATED'; -export const FORGOT_PASSWORD = 'FORGOT_PASSWORD'; export const CLOSE_WELCOME_SCREEN = 'CLOSE_WELCOME_SCREEN'; // unlock screen export const UNLOCK_IN_PROGRESS = 'UNLOCK_IN_PROGRESS'; diff --git a/ui/store/actions.js b/ui/store/actions.js index c1a66c005..142221db7 100644 --- a/ui/store/actions.js +++ b/ui/store/actions.js @@ -1392,7 +1392,6 @@ export function markPasswordForgotten() { } finally { // TODO: handle errors dispatch(hideLoadingIndication()); - dispatch(forgotPassword()); await forceUpdateMetamaskState(dispatch); } }; @@ -1402,20 +1401,12 @@ export function unMarkPasswordForgotten() { return (dispatch) => { return new Promise((resolve) => { callBackgroundMethod('unMarkPasswordForgotten', [], () => { - dispatch(forgotPassword(false)); resolve(); }); }).then(() => forceUpdateMetamaskState(dispatch)); }; } -export function forgotPassword(forgotPasswordState = true) { - return { - type: actionConstants.FORGOT_PASSWORD, - value: forgotPasswordState, - }; -} - export function closeWelcomeScreen() { return { type: actionConstants.CLOSE_WELCOME_SCREEN, diff --git a/ui/store/actions.test.js b/ui/store/actions.test.js index 985b278fa..e2793ce8c 100644 --- a/ui/store/actions.test.js +++ b/ui/store/actions.test.js @@ -130,7 +130,6 @@ describe('Actions', () => { const expectedActions = [ { type: 'SHOW_LOADING_INDICATION', value: undefined }, - { type: 'FORGOT_PASSWORD', value: false }, { type: 'UPDATE_METAMASK_STATE', value: baseMockState, @@ -1674,11 +1673,6 @@ describe('Actions', () => { await store.dispatch(actions.markPasswordForgotten()); - const resultantActions = store.getActions(); - expect(resultantActions[1]).toStrictEqual({ - type: 'FORGOT_PASSWORD', - value: true, - }); expect(background.markPasswordForgotten.callCount).toStrictEqual(1); }); @@ -1693,7 +1687,6 @@ describe('Actions', () => { const expectedActions = [ { type: 'HIDE_LOADING_INDICATION' }, - { type: 'FORGOT_PASSWORD', value: true }, { type: 'UPDATE_METAMASK_STATE', value: baseMockState, @@ -1718,11 +1711,6 @@ describe('Actions', () => { store.dispatch(actions.unMarkPasswordForgotten()); - const resultantActions = store.getActions(); - expect(resultantActions[0]).toStrictEqual({ - type: 'FORGOT_PASSWORD', - value: false, - }); expect(background.unMarkPasswordForgotten.callCount).toStrictEqual(1); }); });