Skip to content

Commit

Permalink
Supporting existing default networks in switchEthereumChain (#11184)
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanml authored May 26, 2021
1 parent 8e3bffc commit 3242710
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import { ethErrors } from 'eth-rpc-errors';
import { omit } from 'lodash';
import { MESSAGE_TYPE } from '../../../../../shared/constants/app';
import {
ETH_SYMBOL,
CHAIN_ID_TO_TYPE_MAP,
NETWORK_TO_NAME_MAP,
} from '../../../../../shared/constants/network';
import {
isPrefixedFormattedHexString,
isSafeChainId,
Expand All @@ -12,6 +17,18 @@ const switchEthereumChain = {
};
export default switchEthereumChain;

function findExistingNetwork(chainId, findCustomRpcBy) {
if (chainId in CHAIN_ID_TO_TYPE_MAP) {
return {
chainId,
nickname: NETWORK_TO_NAME_MAP[chainId],
ticker: ETH_SYMBOL,
};
}

return findCustomRpcBy({ chainId });
}

async function switchEthereumChainHandler(
req,
res,
Expand Down Expand Up @@ -61,7 +78,7 @@ async function switchEthereumChainHandler(
);
}

const existingNetwork = findCustomRpcBy({ chainId: _chainId });
const existingNetwork = findExistingNetwork(_chainId, findCustomRpcBy);

if (existingNetwork) {
const currentChainId = getCurrentChainId();
Expand All @@ -75,7 +92,6 @@ async function switchEthereumChainHandler(
origin,
type: MESSAGE_TYPE.SWITCH_ETHEREUM_CHAIN,
requestData: {
rpcUrl: existingNetwork.rpcUrl,
chainId: existingNetwork.chainId,
nickname: existingNetwork.nickname,
ticker: existingNetwork.ticker,
Expand Down
15 changes: 13 additions & 2 deletions ui/pages/confirmation/templates/switch-ethereum-chain.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { ethErrors } from 'eth-rpc-errors';
import { NETWORK_TYPE_RPC } from '../../../../shared/constants/network';
import {
CHAIN_ID_TO_TYPE_MAP,
NETWORK_TYPE_RPC,
} from '../../../../shared/constants/network';
import {
JUSTIFY_CONTENT,
SEVERITIES,
Expand All @@ -24,6 +27,14 @@ async function getAlerts() {
return [PENDING_TX_DROP_NOTICE];
}

function getNetworkType(chainId) {
if (chainId in CHAIN_ID_TO_TYPE_MAP) {
return CHAIN_ID_TO_TYPE_MAP[chainId];
}

return NETWORK_TYPE_RPC;
}

function getValues(pendingApproval, t, actions) {
return {
content: [
Expand Down Expand Up @@ -65,7 +76,7 @@ function getValues(pendingApproval, t, actions) {
colored: false,
outline: true,
targetNetwork: {
type: NETWORK_TYPE_RPC,
type: getNetworkType(pendingApproval.requestData.chainId),
nickname: pendingApproval.requestData.nickname,
},
},
Expand Down

0 comments on commit 3242710

Please sign in to comment.