@@ -131,6 +131,10 @@ import OptionsSheet from '../../UI/SelectOptionSheet/OptionsSheet';
131131import FoxLoader from '../../../components/UI/FoxLoader' ;
132132import { AppStateEventProcessor } from '../../../core/AppStateEventListener' ;
133133import MultiRpcModal from '../../../components/Views/MultiRpcModal/MultiRpcModal' ;
134+ import Engine from '../../../core/Engine' ;
135+ import { CHAIN_IDS } from '@metamask/transaction-controller' ;
136+ import { PopularList } from '../../../util/networks/customNetworks' ;
137+ import { RpcEndpointType } from '@metamask/network-controller' ;
134138import { trace , TraceName , TraceOperation } from '../../../util/trace' ;
135139
136140const clearStackNavigatorOptions = {
@@ -762,6 +766,46 @@ const App = (props) => {
762766 useEffect ( ( ) => {
763767 async function startApp ( ) {
764768 const existingUser = await StorageWrapper . getItem ( EXISTING_USER ) ;
769+ if ( ! existingUser ) {
770+ // List of chainIds to add (as hex strings)
771+ const chainIdsToAdd = [
772+ CHAIN_IDS . ARBITRUM ,
773+ CHAIN_IDS . BASE ,
774+ CHAIN_IDS . BSC ,
775+ CHAIN_IDS . OPTIMISM ,
776+ CHAIN_IDS . POLYGON ,
777+ ] ;
778+
779+ // Filter the PopularList to get only the specified networks based on chainId
780+ const selectedNetworks = PopularList . filter ( ( network ) =>
781+ chainIdsToAdd . includes ( network . chainId ) ,
782+ ) ;
783+ const { NetworkController } = Engine . context ;
784+
785+ // Loop through each selected network and call NetworkController.addNetwork
786+ for ( const network of selectedNetworks ) {
787+ try {
788+ await NetworkController . addNetwork ( {
789+ chainId : network . chainId ,
790+ blockExplorerUrls : [ network . rpcPrefs . blockExplorerUrl ] ,
791+ defaultRpcEndpointIndex : 0 ,
792+ defaultBlockExplorerUrlIndex : 0 ,
793+ name : network . nickname ,
794+ nativeCurrency : network . ticker ,
795+ rpcEndpoints : [
796+ {
797+ url : network . rpcUrl ,
798+ name : network . nickname ,
799+ type : RpcEndpointType . Custom ,
800+ } ,
801+ ] ,
802+ } ) ;
803+ } catch ( error ) {
804+ Logger . error ( error ) ;
805+ }
806+ }
807+ }
808+
765809 try {
766810 const currentVersion = getVersion ( ) ;
767811 const savedVersion = await StorageWrapper . getItem ( CURRENT_APP_VERSION ) ;
0 commit comments