连接metamask,并签名

在assets下新建metamask.js
复制代码
import { ethers } from "ethers"; //版本号为 "ethers": "^4.0.47",
import { buildLoginNonce } from '@/api/register' //请求接口后台返回随机验证码
/**
 * 
 * @param {*} ethereum 连接钱包类型 metamask(ethereum)、nabox(NaboxWallet)
 * @returns 
 */

export async function metamaskWallet(ethereum = 'ethereum') {
    if (typeof window[ethereum] === "undefined") {
        if(ethereum === 'ethereum'){
            alert("Please install MetaMask")
        }else{
            alert("Please install Nabox Wallet")
        }
    } else {
        const provider = new ethers.providers.Web3Provider(window[ethereum]);
        let address = null
        try {
            address = await window[ethereum].request({ method: 'eth_requestAccounts' }); //连接钱包
        } catch (error) {
            throw(error)
        }
        if (address[0]) {
            // 签名
            const code = await buildLoginNonce(address[0]); 
            const jsonRpcSigner = provider.getSigner();
            const signature = await jsonRpcSigner.signMessage(code.data);
            console.log(signature)
        }
    }
}
复制代码

 

posted @   龙卷风吹毁停车场  阅读(240)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2021-04-27 element 设置table表头样式
2020-04-27 js使用正则表达式匹配富文本框中的img标签
点击右上角即可分享
微信分享提示