vue+MetaMask=》连接钱包以及签名(chatGPT)

<template>
  <div>
    <button @click="connectWallet">连接钱包</button>
    <button @click="signMessage">签名</button>
  </div>
</template>

<script>
import Web3 from 'web3';

export default {
  data() {
    return {
      web3: null,
      connected: false,
      message: 'This is a test message',
      signature: '',
    };
  },
  methods: {
    async connectWallet() {
  if (!window.ethereum) {
    console.warn("请安装MetaMask");
    return;
  }

  try {
    await window.ethereum.request({ method: 'eth_requestAccounts' });
    this.web3 = await new Web3(window.ethereum);
    this.connected = true;
    console.log("已连接钱包");
  } catch (error) {
    console.error(error);
  }
},
// async connectWallet() {
//       if (window.ethereum) {
//         // 如果用户已经安装了狐狸钱包
//         await window.ethereum.request({ method: 'wallet_requestPermissions', params: [{ eth_accounts: {} }] })
//         // 并请求连接到用户当前选定的账户
//         await window.ethereum.enable()
//         // 取得连接到的用户地址
//         const address = await window.ethereum.selectedAddress
//         console.log(`已连接到地址 ${address}`)
//         this.connected = true;
//       } else {
//         alert('请您先安装狐狸钱包')
//       }
//     },

    async signMessage() {
      if (!this.connected) {
        console.warn("请先连接到钱包");
        return;
      }

      const address = (await this.web3.eth.getAccounts())[0];
      console.log(address);

      const signature = await this.web3.eth.personal.sign(this.message, address);
      this.signature = signature;
      console.log(signature);
    },
  },
};
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值