metaMask vue 连接钱包
import {
ethers
} from 'ethers'
import MetaMaskOnboarding from '@metamask/onboarding'
import {
Message
} from 'element-ui'
async function connectMetaMask () { if (!isMetaMaskInstalled()) { // 判断是否安装MetaMask扩展工具 const forwarderOrigin = window.location.origin const onboarding = new MetaMaskOnboarding({ forwarderOrigin }) onboarding.startOnboarding() return }
const provider = new ethers.providers.Web3Provider(window.ethereum) try { const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' }); const { chainId } = await provider.getNetwork() const account = accounts[0]; window.ethereum.on('networkChanged', () => { window.location.reload() }) window.ethereum.on('accountsChanged', () => { window.location.reload() }) window.ethereum.on('message', message => { console.log('message', message) }) window.ethereum.on('disconnect', () => { localStorage.removeItem('walletType') localStorage.removeItem('walletTypeVerify') window.location.reload() }) return { account, provider, chainId, } } catch (error) { console.log(error) Message.error(error) return false }
function isMetaMaskInstalled () { const { ethereum } = window return Boolean(ethereum && ethereum.isMetaMask) } }
export default connectMetaMask
async function connectMetaMask () { if (!isMetaMaskInstalled()) { // 判断是否安装MetaMask扩展工具 const forwarderOrigin = window.location.origin const onboarding = new MetaMaskOnboarding({ forwarderOrigin }) onboarding.startOnboarding() return }
const provider = new ethers.providers.Web3Provider(window.ethereum) try { const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' }); const { chainId } = await provider.getNetwork() const account = accounts[0]; window.ethereum.on('networkChanged', () => { window.location.reload() }) window.ethereum.on('accountsChanged', () => { window.location.reload() }) window.ethereum.on('message', message => { console.log('message', message) }) window.ethereum.on('disconnect', () => { localStorage.removeItem('walletType') localStorage.removeItem('walletTypeVerify') window.location.reload() }) return { account, provider, chainId, } } catch (error) { console.log(error) Message.error(error) return false }
function isMetaMaskInstalled () { const { ethereum } = window return Boolean(ethereum && ethereum.isMetaMask) } }
export default connectMetaMask