1、switchNetwork组件
import { ethers } from 'ethers'
/**
* 切换网络方法
* @param chainId 网络ID
* @param RpcInfo rpc信息
* @chainName String 网络名称
* @Nodes String 新的 RPC URL
* @BlockExplorerUrls String 区块浏览器 URL(可选)
* @param nativeCurrency 货币信息
* @name 货币名称
* @decimals 位数
*/
export const switchNetwork = async (netInfo) => {
const provider = new ethers.providers.Web3Provider(window.ethereum);
// 当前网络信息
const network = await provider.getNetwork();
// 当前网络和域名网络一致
if (netInfo.chainId && network.chainId == netInfo.chainId) {
console.log('当前网络和域名网络一致');
return true;
}
let hex_chainId = ethers.utils.hexValue(netInfo.chainId);
console.log('hex_chainId :' + hex_chainId);
try {
// 切换到传入的网络
await provider.send('wallet_switchEthereumChain', [
{ chain