diff --git a/app/components/Nav/App/index.js b/app/components/Nav/App/index.js index dbed500c1a1..82d6268f1ed 100644 --- a/app/components/Nav/App/index.js +++ b/app/components/Nav/App/index.js @@ -131,6 +131,10 @@ import OptionsSheet from '../../UI/SelectOptionSheet/OptionsSheet'; import FoxLoader from '../../../components/UI/FoxLoader'; import { AppStateEventProcessor } from '../../../core/AppStateEventListener'; import MultiRpcModal from '../../../components/Views/MultiRpcModal/MultiRpcModal'; +import Engine from '../../../core/Engine'; +import { CHAIN_IDS } from '@metamask/transaction-controller'; +import { PopularList } from '../../../util/networks/customNetworks'; +import { RpcEndpointType } from '@metamask/network-controller'; import { trace, TraceName, TraceOperation } from '../../../util/trace'; const clearStackNavigatorOptions = { @@ -762,6 +766,46 @@ const App = (props) => { useEffect(() => { async function startApp() { const existingUser = await StorageWrapper.getItem(EXISTING_USER); + if (!existingUser) { + // List of chainIds to add (as hex strings) + const chainIdsToAdd = [ + CHAIN_IDS.ARBITRUM, + CHAIN_IDS.BASE, + CHAIN_IDS.BSC, + CHAIN_IDS.OPTIMISM, + CHAIN_IDS.POLYGON, + ]; + + // Filter the PopularList to get only the specified networks based on chainId + const selectedNetworks = PopularList.filter((network) => + chainIdsToAdd.includes(network.chainId), + ); + const { NetworkController } = Engine.context; + + // Loop through each selected network and call NetworkController.addNetwork + for (const network of selectedNetworks) { + try { + await NetworkController.addNetwork({ + chainId: network.chainId, + blockExplorerUrls: [network.rpcPrefs.blockExplorerUrl], + defaultRpcEndpointIndex: 0, + defaultBlockExplorerUrlIndex: 0, + name: network.nickname, + nativeCurrency: network.ticker, + rpcEndpoints: [ + { + url: network.rpcUrl, + name: network.nickname, + type: RpcEndpointType.Custom, + }, + ], + }); + } catch (error) { + Logger.error(error); + } + } + } + try { const currentVersion = getVersion(); const savedVersion = await StorageWrapper.getItem(CURRENT_APP_VERSION);