连接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)
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2021-04-27 element 设置table表头样式
2020-04-27 js使用正则表达式匹配富文本框中的img标签