fix(network switch): do not show failed to switch networks for successful network switches

This commit is contained in:
Moody Salem 2021-12-23 10:18:58 -05:00
parent 458e04f94c
commit 13c42a384b
No known key found for this signature in database
GPG Key ID: 8CB5CD10385138DB
2 changed files with 8 additions and 7 deletions

@ -24,8 +24,8 @@ export default function FailedNetworkSwitchPopup({ chainId }: { chainId: Support
<AutoColumn gap="8px"> <AutoColumn gap="8px">
<ThemedText.Body fontWeight={500}> <ThemedText.Body fontWeight={500}>
<Trans> <Trans>
Your wallet does not support switching networks from the Uniswap Interface. In order to use Uniswap on{' '} Failed to switch networks from the Uniswap Interface. In order to use Uniswap on {chainInfo.label}, you must
{chainInfo.label}, you must change the network in your wallet. change the network in your wallet.
</Trans> </Trans>
</ThemedText.Body> </ThemedText.Body>
</AutoColumn> </AutoColumn>

@ -37,15 +37,16 @@ export async function switchToNetwork({ library, chainId }: SwitchNetworkArgumen
}, },
], ],
}) })
const { chainId: chainIdAfterSwitch } = await library.getNetwork() // metamask (only known implementer) automatically switches after a network is added
if (chainIdAfterSwitch !== chainId) { // the second call is done here because that behavior is not a part of the spec and cannot be relied upon in the future
// metamask (only known implementer) automatically switches after a network is added // metamask's behavior when switching to the current network is just to return null (a no-op)
// the second call is done here because that behavior is not a part of the spec and cannot be relied upon in the future try {
// metamask's behavior when switching to the current network is just to return null (a no-op)
await library.provider.request({ await library.provider.request({
method: 'wallet_switchEthereumChain', method: 'wallet_switchEthereumChain',
params: [{ chainId: formattedChainId }], params: [{ chainId: formattedChainId }],
}) })
} catch (error) {
console.debug('Added network but could not switch chains', error)
} }
} else { } else {
throw error throw error