mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
This commit is contained in:
parent
96e4b7bb9f
commit
e6a4c63d51
@ -12,7 +12,7 @@ import {
|
|||||||
setProviderType,
|
setProviderType,
|
||||||
toggleNetworkMenu,
|
toggleNetworkMenu,
|
||||||
} from '../../../store/actions';
|
} from '../../../store/actions';
|
||||||
import { CHAIN_IDS, TEST_CHAINS } from '../../../../shared/constants/network';
|
import { TEST_CHAINS } from '../../../../shared/constants/network';
|
||||||
import {
|
import {
|
||||||
getShowTestNetworks,
|
getShowTestNetworks,
|
||||||
getCurrentChainId,
|
getCurrentChainId,
|
||||||
@ -52,12 +52,6 @@ import {
|
|||||||
isLineaMainnetNetworkReleased,
|
isLineaMainnetNetworkReleased,
|
||||||
} from '../../../ducks/metamask/metamask';
|
} from '../../../ducks/metamask/metamask';
|
||||||
|
|
||||||
const UNREMOVABLE_CHAIN_IDS = [
|
|
||||||
CHAIN_IDS.MAINNET,
|
|
||||||
CHAIN_IDS.LINEA_MAINNET,
|
|
||||||
...TEST_CHAINS,
|
|
||||||
];
|
|
||||||
|
|
||||||
export const NetworkListMenu = ({ onClose }) => {
|
export const NetworkListMenu = ({ onClose }) => {
|
||||||
const t = useI18nContext();
|
const t = useI18nContext();
|
||||||
|
|
||||||
@ -117,9 +111,7 @@ export const NetworkListMenu = ({ onClose }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isCurrentNetwork = currentNetwork.id === network.id;
|
const isCurrentNetwork = currentNetwork.id === network.id;
|
||||||
|
const canDeleteNetwork = !isCurrentNetwork && network.removable;
|
||||||
const canDeleteNetwork =
|
|
||||||
!isCurrentNetwork && !UNREMOVABLE_CHAIN_IDS.includes(network.chainId);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NetworkListItem
|
<NetworkListItem
|
||||||
|
@ -1211,6 +1211,7 @@ export function getTestNetworks(state) {
|
|||||||
providerType: NETWORK_TYPES.GOERLI,
|
providerType: NETWORK_TYPES.GOERLI,
|
||||||
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.GOERLI],
|
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.GOERLI],
|
||||||
id: NETWORK_TYPES.GOERLI,
|
id: NETWORK_TYPES.GOERLI,
|
||||||
|
removable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
chainId: CHAIN_IDS.SEPOLIA,
|
chainId: CHAIN_IDS.SEPOLIA,
|
||||||
@ -1219,6 +1220,7 @@ export function getTestNetworks(state) {
|
|||||||
providerType: NETWORK_TYPES.SEPOLIA,
|
providerType: NETWORK_TYPES.SEPOLIA,
|
||||||
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
|
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
|
||||||
id: NETWORK_TYPES.SEPOLIA,
|
id: NETWORK_TYPES.SEPOLIA,
|
||||||
|
removable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
chainId: CHAIN_IDS.LINEA_GOERLI,
|
chainId: CHAIN_IDS.LINEA_GOERLI,
|
||||||
@ -1230,11 +1232,12 @@ export function getTestNetworks(state) {
|
|||||||
providerType: NETWORK_TYPES.LINEA_GOERLI,
|
providerType: NETWORK_TYPES.LINEA_GOERLI,
|
||||||
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_GOERLI],
|
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_GOERLI],
|
||||||
id: NETWORK_TYPES.LINEA_GOERLI,
|
id: NETWORK_TYPES.LINEA_GOERLI,
|
||||||
|
removable: false,
|
||||||
},
|
},
|
||||||
// Localhosts
|
// Localhosts
|
||||||
...Object.values(networkConfigurations).filter(
|
...Object.values(networkConfigurations)
|
||||||
({ chainId }) => chainId === CHAIN_IDS.LOCALHOST,
|
.filter(({ chainId }) => chainId === CHAIN_IDS.LOCALHOST)
|
||||||
),
|
.map((network) => ({ ...network, removable: true })),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1253,6 +1256,7 @@ export function getNonTestNetworks(state) {
|
|||||||
providerType: NETWORK_TYPES.MAINNET,
|
providerType: NETWORK_TYPES.MAINNET,
|
||||||
ticker: CURRENCY_SYMBOLS.ETH,
|
ticker: CURRENCY_SYMBOLS.ETH,
|
||||||
id: NETWORK_TYPES.MAINNET,
|
id: NETWORK_TYPES.MAINNET,
|
||||||
|
removable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
chainId: CHAIN_IDS.LINEA_MAINNET,
|
chainId: CHAIN_IDS.LINEA_MAINNET,
|
||||||
@ -1264,11 +1268,12 @@ export function getNonTestNetworks(state) {
|
|||||||
providerType: NETWORK_TYPES.LINEA_MAINNET,
|
providerType: NETWORK_TYPES.LINEA_MAINNET,
|
||||||
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_MAINNET],
|
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_MAINNET],
|
||||||
id: NETWORK_TYPES.LINEA_MAINNET,
|
id: NETWORK_TYPES.LINEA_MAINNET,
|
||||||
|
removable: false,
|
||||||
},
|
},
|
||||||
// Custom networks added by the user
|
// Custom networks added by the user
|
||||||
...Object.values(networkConfigurations).filter(
|
...Object.values(networkConfigurations)
|
||||||
({ chainId }) => ![CHAIN_IDS.LOCALHOST].includes(chainId),
|
.filter(({ chainId }) => ![CHAIN_IDS.LOCALHOST].includes(chainId))
|
||||||
),
|
.map((network) => ({ ...network, removable: true })),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import { KeyringType } from '../../shared/constants/keyring';
|
|||||||
import {
|
import {
|
||||||
CHAIN_IDS,
|
CHAIN_IDS,
|
||||||
LOCALHOST_DISPLAY_NAME,
|
LOCALHOST_DISPLAY_NAME,
|
||||||
|
NETWORK_TYPES,
|
||||||
} from '../../shared/constants/network';
|
} from '../../shared/constants/network';
|
||||||
import * as selectors from './selectors';
|
import * as selectors from './selectors';
|
||||||
|
|
||||||
@ -314,6 +315,33 @@ describe('Selectors', () => {
|
|||||||
const lastItem = networks.pop();
|
const lastItem = networks.pop();
|
||||||
expect(lastItem.nickname.toLowerCase()).toContain('localhost');
|
expect(lastItem.nickname.toLowerCase()).toContain('localhost');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('properly assigns a network as removable', () => {
|
||||||
|
const networks = selectors.getAllNetworks({
|
||||||
|
metamask: {
|
||||||
|
preferences: {
|
||||||
|
showTestNetworks: true,
|
||||||
|
},
|
||||||
|
networkConfigurations: {
|
||||||
|
'some-config-name': {
|
||||||
|
chainId: CHAIN_IDS.LOCALHOST,
|
||||||
|
nickname: LOCALHOST_DISPLAY_NAME,
|
||||||
|
id: 'some-config-name',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const mainnet = networks.find(
|
||||||
|
(network) => network.id === NETWORK_TYPES.MAINNET,
|
||||||
|
);
|
||||||
|
expect(mainnet.removable).toBe(false);
|
||||||
|
|
||||||
|
const customNetwork = networks.find(
|
||||||
|
(network) => network.id === 'some-config-name',
|
||||||
|
);
|
||||||
|
expect(customNetwork.removable).toBe(true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#getCurrentNetwork', () => {
|
describe('#getCurrentNetwork', () => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user