diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index b3783283474b..cc9e91e9e889 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -865,8 +865,6 @@ export default class MetamaskController extends EventEmitter { stalelistRefreshInterval: process.env.IN_TEST ? 30 * SECOND : undefined, }); - this.phishingController.maybeUpdateState(); - ///: BEGIN:ONLY_INCLUDE_IF(blockaid) this.ppomController = new PPOMController({ messenger: this.controllerMessenger.getRestricted({ @@ -2339,7 +2337,13 @@ export default class MetamaskController extends EventEmitter { } postOnboardingInitialization() { + const { usePhishDetect } = this.preferencesController.store.getState(); + this.networkController.lookupNetwork(); + + if (usePhishDetect) { + this.phishingController.maybeUpdateState(); + } } triggerNetworkrequests() { diff --git a/test/e2e/tests/privacy/basic-functionality.spec.js b/test/e2e/tests/privacy/basic-functionality.spec.js index b0f9b54e9928..aef2f16728de 100644 --- a/test/e2e/tests/privacy/basic-functionality.spec.js +++ b/test/e2e/tests/privacy/basic-functionality.spec.js @@ -7,10 +7,17 @@ const { tinyDelayMs, defaultGanacheOptions, } = require('../../helpers'); +const { METAMASK_STALELIST_URL } = require('../phishing-controller/helpers'); const FixtureBuilder = require('../../fixture-builder'); async function mockApis(mockServer) { return [ + await mockServer.forGet(METAMASK_STALELIST_URL).thenCallback(() => { + return { + statusCode: 200, + body: [{ fakedata: true }], + }; + }), await mockServer .forGet('https://token.api.cx.metamask.io/tokens/1') .thenCallback(() => { diff --git a/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js b/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js index 30cc64553fcc..60bd84965013 100644 --- a/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js +++ b/ui/pages/onboarding-flow/privacy-settings/privacy-settings.js @@ -104,7 +104,6 @@ export default function PrivacySettings() { const defaultState = useSelector((state) => state.metamask); const { incomingTransactionsPreferences, - usePhishDetect, use4ByteResolution, useTokenDetection, useCurrencyRateCheck, @@ -116,8 +115,7 @@ export default function PrivacySettings() { const petnamesEnabled = useSelector(getPetnamesEnabled); const participateInMetaMetrics = useSelector(selectParticipateInMetaMetrics); - const [usePhishingDetection, setUsePhishingDetection] = - useState(usePhishDetect); + const [usePhishingDetection, setUsePhishingDetection] = useState(null); const [turnOn4ByteResolution, setTurnOn4ByteResolution] = useState(use4ByteResolution); const [turnOnTokenDetection, setTurnOnTokenDetection] = @@ -146,13 +144,18 @@ export default function PrivacySettings() { getExternalServicesOnboardingToggleState, ); + const phishingToggleState = + usePhishingDetection === null + ? externalServicesOnboardingToggleState + : usePhishingDetection; + const profileSyncingProps = useProfileSyncingProps( externalServicesOnboardingToggleState, ); const handleSubmit = () => { dispatch(toggleExternalServices(externalServicesOnboardingToggleState)); - dispatch(setUsePhishDetect(usePhishingDetection)); + dispatch(setUsePhishDetect(phishingToggleState)); dispatch(setUse4ByteResolution(turnOn4ByteResolution)); dispatch(setUseTokenDetection(turnOnTokenDetection)); dispatch( @@ -320,7 +323,7 @@ export default function PrivacySettings() { )}