Skip to content

前面几篇文章把一个开发流程全都拆解完了,现在我们就可以开始写前端代码了,并与本也链进行交互了。

1. 唤起 MetaMask 钱包

找了一段唤起 MetaMask 插件的代码

js
const connectWallet = async () => {
  if (window.ethereum) {
    try {
      // 请求用户连接 MetaMask
      await window.ethereum.request({ method: 'eth_requestAccounts' })

      // 创建一个 provider,使用 MetaMask 提供的以太坊对象
      const provider = new ethers.BrowserProvider(window.ethereum)

      // 获取 signer (签名者)
      const signer = await provider.getSigner()

      // 获取连接的账户地址
      const userAddress = await signer.getAddress()

      // 将账户地址保存到 state 中
      setAccount(userAddress)
    } catch (error) {
      console.error('连接 MetaMask 失败:', error)
    }
  } else {
    alert('MetaMask 未安装,请先安装 MetaMask!')
  }
}