diff --git a/app/scripts/controllers/preferences-controller.ts b/app/scripts/controllers/preferences-controller.ts index d4fdc5e70d1e..a158ac0024d4 100644 --- a/app/scripts/controllers/preferences-controller.ts +++ b/app/scripts/controllers/preferences-controller.ts @@ -124,7 +124,9 @@ export type PreferencesControllerState = { useRequestQueue: boolean; openSeaEnabled: boolean; securityAlertsEnabled: boolean; + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) watchEthereumAccountEnabled: boolean; + ///: END:ONLY_INCLUDE_IF bitcoinSupportEnabled: boolean; bitcoinTestnetSupportEnabled: boolean; addSnapAccountEnabled: boolean; @@ -429,6 +431,7 @@ export default class PreferencesController { } ///: END:ONLY_INCLUDE_IF + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) /** * Setter for the `watchEthereumAccountEnabled` property. * @@ -440,6 +443,7 @@ export default class PreferencesController { watchEthereumAccountEnabled, }); } + ///: END:ONLY_INCLUDE_IF /** * Setter for the `bitcoinSupportEnabled` property. diff --git a/app/scripts/lib/snap-keyring/account-watcher-snap.ts b/app/scripts/lib/snap-keyring/account-watcher-snap.ts index 3775dcd28405..48ace4e595af 100644 --- a/app/scripts/lib/snap-keyring/account-watcher-snap.ts +++ b/app/scripts/lib/snap-keyring/account-watcher-snap.ts @@ -1,3 +1,4 @@ +// BEGIN:ONLY_INCLUDE_IF(build-flask) import { SnapId } from '@metamask/snaps-sdk'; import AccountWatcherSnap from '@metamask/account-watcher/dist/preinstalled-snap.json'; @@ -6,3 +7,4 @@ export const ACCOUNT_WATCHER_SNAP_ID: SnapId = export const ACCOUNT_WATCHER_NAME: string = AccountWatcherSnap.manifest.proposedName; +// END:ONLY_INCLUDE_IF diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index c03b8802e22f..63fd6a1610f5 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -3275,10 +3275,12 @@ export default class MetamaskController extends EventEmitter { preferencesController, ), ///: END:ONLY_INCLUDE_IF + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) setWatchEthereumAccountEnabled: preferencesController.setWatchEthereumAccountEnabled.bind( preferencesController, ), + ///: END:ONLY_INCLUDE_IF setBitcoinSupportEnabled: preferencesController.setBitcoinSupportEnabled.bind( preferencesController, diff --git a/app/scripts/snaps/preinstalled-snaps.ts b/app/scripts/snaps/preinstalled-snaps.ts index 81755e98da2b..f46681ddab57 100644 --- a/app/scripts/snaps/preinstalled-snaps.ts +++ b/app/scripts/snaps/preinstalled-snaps.ts @@ -1,8 +1,8 @@ import type { PreinstalledSnap } from '@metamask/snaps-controllers'; import MessageSigningSnap from '@metamask/message-signing-snap/dist/preinstalled-snap.json'; import EnsResolverSnap from '@metamask/ens-resolver-snap/dist/preinstalled-snap.json'; -import AccountWatcherSnap from '@metamask/account-watcher/dist/preinstalled-snap.json'; ///: BEGIN:ONLY_INCLUDE_IF(build-flask) +import AccountWatcherSnap from '@metamask/account-watcher/dist/preinstalled-snap.json'; import BitcoinWalletSnap from '@metamask/bitcoin-wallet-snap/dist/preinstalled-snap.json'; import PreinstalledExampleSnap from '@metamask/preinstalled-example-snap/dist/preinstalled-snap.json'; ///: END:ONLY_INCLUDE_IF @@ -11,8 +11,8 @@ import PreinstalledExampleSnap from '@metamask/preinstalled-example-snap/dist/pr const PREINSTALLED_SNAPS = Object.freeze([ MessageSigningSnap as PreinstalledSnap, EnsResolverSnap as PreinstalledSnap, - AccountWatcherSnap as PreinstalledSnap, ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + AccountWatcherSnap as PreinstalledSnap, BitcoinWalletSnap as unknown as PreinstalledSnap, PreinstalledExampleSnap as unknown as PreinstalledSnap, ///: END:ONLY_INCLUDE_IF diff --git a/shared/constants/metametrics.ts b/shared/constants/metametrics.ts index 663032649f86..2eef3b55028c 100644 --- a/shared/constants/metametrics.ts +++ b/shared/constants/metametrics.ts @@ -637,7 +637,9 @@ export enum MetaMetricsEventName { WalletSetupCanceled = 'Wallet Setup Canceled', WalletSetupFailed = 'Wallet Setup Failed', WalletCreated = 'Wallet Created', + // BEGIN:ONLY_INCLUDE_IF(build-flask) WatchEthereumAccountsToggled = 'Watch Ethereum Accounts Toggled', + // END:ONLY_INCLUDE_IF ///: BEGIN:ONLY_INCLUDE_IF(build-mmi) DeeplinkClicked = 'Deeplink Clicked', ConnectCustodialAccountClicked = 'Connect Custodial Account Clicked', diff --git a/test/e2e/accounts/create-watch-account.spec.ts b/test/e2e/flask/create-watch-account.spec.ts similarity index 100% rename from test/e2e/accounts/create-watch-account.spec.ts rename to test/e2e/flask/create-watch-account.spec.ts diff --git a/ui/components/multichain/account-list-menu/account-list-menu.tsx b/ui/components/multichain/account-list-menu/account-list-menu.tsx index 4e561ed42245..99051042d2dd 100644 --- a/ui/components/multichain/account-list-menu/account-list-menu.tsx +++ b/ui/components/multichain/account-list-menu/account-list-menu.tsx @@ -59,6 +59,7 @@ import { getIsAddSnapAccountEnabled, ///: END:ONLY_INCLUDE_IF ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + getIsWatchEthereumAccountEnabled, getIsBitcoinSupportEnabled, getIsBitcoinTestnetSupportEnabled, ///: END:ONLY_INCLUDE_IF @@ -66,7 +67,6 @@ import { getOriginOfCurrentTab, getSelectedInternalAccount, getUpdatedAndSortedAccounts, - getIsWatchEthereumAccountEnabled, } from '../../../selectors'; import { setSelectedAccount } from '../../../store/actions'; import { @@ -86,6 +86,12 @@ import { getEnvironmentType } from '../../../../app/scripts/lib/util'; import { ENVIRONMENT_TYPE_POPUP } from '../../../../shared/constants/app'; import { getAccountLabel } from '../../../helpers/utils/accounts'; ///: BEGIN:ONLY_INCLUDE_IF(build-flask) +import { + ACCOUNT_WATCHER_NAME, + ACCOUNT_WATCHER_SNAP_ID, + // TODO: Remove restricted import + // eslint-disable-next-line import/no-restricted-paths +} from '../../../../app/scripts/lib/snap-keyring/account-watcher-snap'; import { hasCreatedBtcMainnetAccount, hasCreatedBtcTestnetAccount, @@ -97,12 +103,6 @@ import { AccountConnections, MergedInternalAccount, } from '../../../selectors/selectors.types'; -import { - ACCOUNT_WATCHER_NAME, - ACCOUNT_WATCHER_SNAP_ID, - // TODO: Remove restricted import - // eslint-disable-next-line import/no-restricted-paths -} from '../../../../app/scripts/lib/snap-keyring/account-watcher-snap'; import { HiddenAccountList } from './hidden-account-list'; const ACTION_MODES = { @@ -112,9 +112,9 @@ const ACTION_MODES = { MENU: 'menu', // Displays the add account form controls ADD: 'add', + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) // Displays the add account form controls (for watch-only account) ADD_WATCH_ONLY: 'add-watch-only', - ///: BEGIN:ONLY_INCLUDE_IF(build-flask) // Displays the add account form controls (for bitcoin account) ADD_BITCOIN: 'add-bitcoin', // Same but for testnet @@ -138,9 +138,9 @@ export const getActionTitle = ( switch (actionMode) { case ACTION_MODES.ADD: case ACTION_MODES.MENU: - case ACTION_MODES.ADD_WATCH_ONLY: return t('addAccount'); ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + case ACTION_MODES.ADD_WATCH_ONLY: case ACTION_MODES.ADD_BITCOIN: return t('addAccount'); case ACTION_MODES.ADD_BITCOIN_TESTNET: @@ -231,6 +231,7 @@ export const AccountListMenu = ({ ///: BEGIN:ONLY_INCLUDE_IF(keyring-snaps) const addSnapAccountEnabled = useSelector(getIsAddSnapAccountEnabled); ///: END:ONLY_INCLUDE_IF + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) const isAddWatchEthereumAccountEnabled = useSelector( getIsWatchEthereumAccountEnabled, ); @@ -248,7 +249,7 @@ export const AccountListMenu = ({ onClose(); history.push(`/snaps/view/${encodeURIComponent(ACCOUNT_WATCHER_SNAP_ID)}`); }, [trackEvent, onClose, history]); - ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + const bitcoinSupportEnabled = useSelector(getIsBitcoinSupportEnabled); const bitcoinTestnetSupportEnabled = useSelector( getIsBitcoinTestnetSupportEnabled, @@ -550,19 +551,23 @@ export const AccountListMenu = ({ ///: END:ONLY_INCLUDE_IF } - {isAddWatchEthereumAccountEnabled && ( - - - {t('addEthereumWatchOnlyAccount')} - - - )} + { + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + isAddWatchEthereumAccountEnabled && ( + + + {t('addEthereumWatchOnlyAccount')} + + + ) + ///: END:ONLY_INCLUDE_IF + } ) : null} {actionMode === ACTION_MODES.LIST ? ( diff --git a/ui/pages/settings/experimental-tab/experimental-tab.component.tsx b/ui/pages/settings/experimental-tab/experimental-tab.component.tsx index b888ac31efbe..f1d1f610a7a4 100644 --- a/ui/pages/settings/experimental-tab/experimental-tab.component.tsx +++ b/ui/pages/settings/experimental-tab/experimental-tab.component.tsx @@ -263,6 +263,7 @@ export default class ExperimentalTab extends PureComponent }); } + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) renderWatchAccountToggle() { const { t, trackEvent } = this.context; const { watchAccountEnabled, setWatchAccountEnabled } = this.props; @@ -297,7 +298,6 @@ export default class ExperimentalTab extends PureComponent }); } - ///: BEGIN:ONLY_INCLUDE_IF(build-flask) // We're only setting the code fences here since // we should remove it for the feature release renderBitcoinSupport() { @@ -385,12 +385,15 @@ export default class ExperimentalTab extends PureComponent this.renderKeyringSnapsToggle() ///: END:ONLY_INCLUDE_IF } - {this.renderWatchAccountToggle()} + { + ///: BEGIN:ONLY_INCLUDE_IF(build-flask) + this.renderWatchAccountToggle() + ///: END:ONLY_INCLUDE_IF + } { ///: BEGIN:ONLY_INCLUDE_IF(build-flask) // We're only setting the code fences here since // we should remove it for the feature release - /* Section: Bitcoin Accounts */ this.renderBitcoinSupport() ///: END:ONLY_INCLUDE_IF