web3与Metamask同步切换链
以前遇到一个需求:跨链转换代币,可能从以太链转到自己的链。再从自己的链转回以太链。
期望:当本地切换的时候,metamask的网络也跟着切换
推荐一个网络id和链名称的git库:https://github.com/ethereum-l...
大家都是老码农了,废话就不多说了。直接上代码
【web3与Metamask同步切换链】最完美的方式:
//添加网络 chainId 你需要切换的id
addOrChangeNetWork(chainId) {
const toHex = (num) => {
return '0x' + num.toString(16)
}
const chain = require(`@/moke/json/eip155-${chainId}.json`)
let net_data = https://www.it610.com/article/{
chainId: toHex(chain.chainId),
chainName: chain.name,
nativeCurrency: {
name: chain.nativeCurrency.name,
symbol: chain.nativeCurrency.symbol,
decimals: chain.nativeCurrency.decimals
},
rpcUrls: chain.rpc,
blockExplorerUrls: [chain.explorers && chain.explorers.length> 0 && chain.explorers[0].url ? chain.explorers[0].url : chain.infoURL]
}
web3.eth.getAccounts((error, accounts) => {
window.ethereum
.request({
method: 'wallet_addEthereumChain',
params: [net_data, accounts[0]]
})
.then((result) => {
console.log(result, '返回数据')
})
.catch((error) => {
console.log(error,'错误数据')
})
})
}
简单的方式:
window.ethereum.request({
method: 'wallet_switchEthereumChain',
params: [
{
chainId: Web3.utils.numberToHex(1) //链id
}
]
})
收工!
推荐阅读
- 分支与循环
- 深度|上市首日涨39%、市值缩水近百亿,云从科技IPO的得与失
- Visual Composer是否与divi兼容( [关闭])
- c语言已知斜率|c语言已知斜率 求倾角,直线与方程(一)倾斜角与斜率
- 交换机的基本原理与配置
- 投稿|腾讯新闻换帅背后:那些年摇摆的与坚持的
- Metamask一键添加代币
- 走进RDS|说说关系型数据库与Serverless
- 投稿|胡昊:探寻企业数字化的变与不变
- WGCLOUD如何监控交换机路由器