diff --git a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js index c9e39c1b8579..571688688611 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js +++ b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js @@ -134,11 +134,11 @@ async function addEthereumChainHandler( } else { networkClientId = existingNetwork.id ?? existingNetwork.type; const currentRpcUrl = getCurrentRpcUrl(); - if ( currentChainIdForDomain === chainId && currentRpcUrl === firstValidRPCUrl ) { + res.result = null; return end(); } diff --git a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js index 2380825c9e3c..db4b967fa468 100644 --- a/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js +++ b/app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.test.js @@ -541,4 +541,45 @@ describe('addEthereumChainHandler', () => { }), ); }); + + it('should add result set to null to response object if the requested rpcUrl (and chainId) is currently selected', async () => { + const CURRENT_RPC_CONFIG = createMockNonInfuraConfiguration(); + + const mocks = makeMocks({ + permissionsFeatureFlagIsActive: false, + overrides: { + getCurrentChainIdForDomain: jest + .fn() + .mockReturnValue(CURRENT_RPC_CONFIG.chainId), + findNetworkConfigurationBy: jest + .fn() + .mockReturnValue(CURRENT_RPC_CONFIG), + getCurrentRpcUrl: jest.fn().mockReturnValue(CURRENT_RPC_CONFIG.rpcUrl), + }, + }); + const res = {}; + + await addEthereumChainHandler( + { + origin: 'example.com', + params: [ + { + chainId: CURRENT_RPC_CONFIG.chainId, + chainName: 'Custom Network', + rpcUrls: [CURRENT_RPC_CONFIG.rpcUrl], + nativeCurrency: { + symbol: CURRENT_RPC_CONFIG.ticker, + decimals: 18, + }, + blockExplorerUrls: ['https://custom.blockexplorer'], + }, + ], + }, + res, + jest.fn(), + jest.fn(), + mocks, + ); + expect(res.result).toBeNull(); + }); });