DAPP实现Metamask自动添加网络和切换网络
文章目录
- 1.DAPP实现Metamask自动添加网络/切换网络:
- 2.常用的Metamask网络列表
1.DAPP实现Metamask自动添加网络/切换网络:
实现方法调用matamask的wallet_switchEthereumChain
方法
async addNetwork() {// console.log("当前链接的节点为:", getInjectedProviderName())if (getInjectedProviderName() !== "MetaMask") {throw "This Network is Error";}let chain_info = ChainInfo[ChainId];try {await this.web3.currentProvider.request({method: 'wallet_switchEthereumChain',params: [{ chainId: this.web3.utils.numberToHex(chain_info.chainId), }],});} catch (switchError: any) {// This error code indicates that the chain has not been added to MetaMask.if (switchError.code === 4902) {await this.web3.currentProvider.request({method: 'wallet_addEthereumChain',params: [{chainId: this.web3.utils.numberToHex(chain_info.chainId),chainName: chain_info.chainParams.chainName,rpcUrls: chain_info.chainParams.rpcUrls,blockExplorerUrls: chain_info.chainParams.blockExplorerUrls,nativeCurrency: chain_info.chainParams.nativeCurrency},],});}}}
2.常用的Metamask网络列表
下面为常用的网络列表和区块浏览器地址:
const CHAIN_DATA_LIST = {1: {chainId: 1,chain: "ETH",network: "mainnet",networkId: 1,chainParams: {chainName: "Ethereum Chain Mainnet", // 添加到钱包后显示的网络名称rpcUrls: ['https://mainnet.infura.io/v3/', // rpc地址],// iconUrls: [// 'https://testnet.hecoinfo.com/favicon.png' // 网络的图标// ],blockExplorerUrls: ['https://etherscan.io' // 网络对应的区块浏览器],nativeCurrency: { // 网络主币的信息name: 'ETH',symbol: 'ETH',decimals: 18}}},2: {chainId: 2,chain: "EXP",network: "expanse",networkId: 1},3: {chainId: 3,chain: "ETH",network: "ropsten",networkId: 3,chainParams: {chainName: "Ethereum Chain Ropsten",rpcUrls: ['https://ropsten.infura.io/', ],blockExplorerUrls: ['https://ropsten.etherscan.io'],nativeCurrency: {name: 'RopstenETH',symbol: 'RopstenETH',decimals: 18}}},4: {chainId: 4,chain: "ETH",network: "rinkeby",networkId: 4,chainParams: {chainName: "Ethereum Chain Rinkeby",rpcUrls: ['https://rinkeby.infura.io/v3/',],blockExplorerUrls: ['https://rinkeby.etherscan.io'],nativeCurrency: {name: 'RinkebyETH',symbol: 'RinkebyETH',decimals: 18}}},5: {chainId: 5,chain: "ETH",network: "goerli",networkId: 5,chainParams: {chainName: "Ethereum Chain Goerli",rpcUrls: ['https://goerli.infura.io/v3/',],blockExplorerUrls: ['https://goerli.etherscan.io'],nativeCurrency: {name: 'GoerliETH',symbol: 'GoerliETH',decimals: 18}}},6: {chainId: 6,chain: "ETC",network: "kotti",networkId: 6},8: {chainId: 8,chain: "UBQ",network: "ubiq",networkId: 88},9: {chainId: 9,chain: "UBQ",network: "ubiq-testnet",networkId: 2},11: {chainId: 11,chain: "META",network: "metadium",networkId: 11},12: {chainId: 12,chain: "META",network: "metadium-testnet",networkId: 12},18: {chainId: 18,chain: "TST",network: "thundercore-testnet",networkId: 18},30: {chainId: 30,chain: "RSK",network: "rsk",networkId: 30},31: {chainId: 31,chain: "RSK",network: "rsk-testnet",networkId: 31},42: {chainId: 42,chain: "ETH",network: "kovan",networkId: 42},56: {chainId: 56,chain: "BSC",network: "binance",networkId: 56,chainParams: {chainName: "Binance Smart Chain Mainnet", // 添加到钱包后显示的网络名称rpcUrls: ['https://bsc-dataseed.binance.org/', // rpc地址],blockExplorerUrls: ['https://bscscan.com' // 网络对应的区块浏览器],nativeCurrency: { // 网络主币的信息name: 'BNB',symbol: 'BNB',decimals: 18}}},60: {chainId: 60,chain: "GO",network: "gochain",networkId: 60},61: {chainId: 61,chain: "ETC",network: "etc",networkId: 1},62: {chainId: 62,chain: "ETC",network: "etc-morden",networkId: 2},63: {chainId: 63,chain: "ETC",network: "etc-testnet",networkId: 7},64: {chainId: 64,chain: "ELLA",network: "ellaism",networkId: 64},76: {chainId: 76,chain: "MIX",network: "mix",networkId: 76},77: {chainId: 77,chain: "POA",network: "poa-sokol",networkId: 77},88: {chainId: 88,chain: "TOMO",network: "tomochain",networkId: 88},97: {chainId: 97,chain: "BSCT",network: "binance-test",networkId: 97},99: {chainId: 99,chain: "POA",network: "poa-core",networkId: 99},100: {chainId: 100,chain: "XDAI",network: "xdai",networkId: 100},101: {chainId: 101,chain: "ETI",network: "etherinc",networkId: 1},108: {chainId: 108,chain: "TT",network: "thundercore",networkId: 108},162: {chainId: 162,chain: "PHT",network: "sirius",networkId: 162},163: {chainId: 163,chain: "PHT",network: "lightstreams",networkId: 163},211: {chainId: 211,chain: "FTN",network: "freight",networkId: 0},269: {chainId: 269,chain: "HPB",network: "hpb",networkId: 100},385: {chainId: 385,chain: "CRO",network: "lisinski",networkId: 385},820: {chainId: 820,chain: "CLO",network: "callisto",networkId: 1},821: {chainId: 821,chain: "CLO",network: "callisto-testnet",networkId: 2},137: {chainId: 137,chain: "MATIC",network: "matic",networkId: 137},80001: {chainId: 80001,chain: "MUMBAI",network: "mumbai",networkId: 80001},246529: {chainId: 246529,chain: "ARTIS sigma1",network: "artis-s1",networkId: 246529},246785: {chainId: 246785,chain: "ARTIS tau1",network: "artis-t1",networkId: 246785}
};
DAPP实现Metamask自动添加网络和切换网络相关推荐
- Metamask添加网络和切换网络
在Dapp中,自动给用户Metamask添加一个网络(比如Heco主网或Heco测试网),程序主动切换用户Metamask的网络为指定网络(比如Heco主网) Metamask新增了一个AddEthe ...
- ip地址自动切换器_网络IP切换器IPProviders下载_IPProviders官方版下载1.1.22
IPProviders官方版是非常强大的ip切换器助手,可以进行ip地址更换,网关和dns更改.使用方法很简单,用户只需要提前设置好ip地址,需要切换的时候就可以任意切换了,让你可以随意切换更改自己的 ...
- dos批处理脚本自动添加网络IP打印机-简单亲测可用
dos批处理脚本自动添加网络IP打印机-简单亲测可用 前言: 网上找的批处理添加方法复杂且需要导入注册表. 花了一天时间研究出来的简单.快速的批处理命令. win10亲测可用. 核心代码: 1. 添加 ...
- js连接web3,连接小狐狸metamask钱包,实现链不对后切换网络和创建网络
直接上代码,我这里吧所有配置都改成正式的链56,一旦用户的小狐狸钱包现在的链不一致,就询问切换网络,没有就创建网络,网络切换成功后,收到监听,重新连接一下web3,就是重新调用一些connectWeb ...
- 网页自动切换html css js,HTML页面自动清理js、css文件的缓存(自动添加版本号)_HTML/Xhtml_网页制作...
这篇文章主要介绍了HTML页面自动清理js.css文件的缓存(自动添加版本号),小编觉得挺不错的,现在分享给大家HTML源码,也给大家做个参考.对HTML感兴趣的小伙伴们一起跟随小编过来看看吧 在we ...
- OkHttp如何移除User-Agent,Accept-Encoding等框架自动添加的请求头参数
使用OkHttp网络框架在进行网络请求时会发现,传到后台的请求头中会比我们自己添加的参数多出几个额外参数.查看源码会发现 private Response getResponseWithInterce ...
- Windows2008应用之配置客户端自动添加打印机
打印机对我们每一个人来说都是习以为常的东西了,给你一条远程打印机共享路径,你只要轻轻的双击想安装的打印机图标,等上个三五秒打印机就安装好,这台打印机就任你摆布了.但相对我们IT人员来说,全面的自动化将 ...
- ping 丢包 网络摄像头_利用Zabbix监控工具自动帮我们检测目标网络状况
通过上一篇文章<IT人员必须要掌握的几个网络测试命令详解>的介绍,我们知道了可以使用"ping"命令检测到目标主机的联通性,可以使用"telnet" ...
- python logging详解及自动添加上下文信息
之前写过一篇文章日志的艺术(The art of logging),提到了输出日志的时候记录上下文信息的重要性,我认为上下文信息包括: when:log事件发生的时间 where:log事件发生在哪个 ...
最新文章
- 新概念机房运维监控三大新理念
- 未来教育计算机三级课后题答案,未来教育计算机三级课后题答案
- 如何上手深度学习中的图像处理?有这个代码资源库就够了
- php教程数据库操作,PHP实现对文本数据库的常用操作方法实例演示_PHP教程
- Uipath 学习栏目基础教学:4Uipath 循环语句
- 数据结构与算法 | 用队列实现栈
- android多音字排序,Android拼音排序
- 数据挖掘之关联分析三(规则的产生)
- 第五周课程总结试验报告三
- 当你使用微信和QQ时,请不要忘记ICQ这个伟大的公司!
- php如何查看openssl扩展安装成功,php如何安装openssl扩展
- CentOS7网络配置ping通外网
- Delphi 的运算符列表
- SDUT 2218 Give Me an E(规律)
- 卸载干净ARCGIS不用手动删注册表,一键用GEEK
- TCPUDP测试工具 创建UDP通信设置教程
- 家庭电信网弄外网唤醒并远程内网电脑
- Windows密钥备份
- Linux系统故障分析与排查
- bzoj4816: [Sdoi2017]数字表格