vue3+vite+ts接入walletconnect

版本

"vue": "^3.2.45",
"vite": "^4.0.0",
"@walletconnect/client": "^1.8.0",
"@walletconnect/qrcode-modal": "^1.8.0",
"vite-plugin-compression": "^0.5.1",

在main.ts中加入

// 目的是兼容vite,不然会一下报错,webpack不会出现
// global is not defined
// buffer is not defined
// util is not defined
// exports is not defined
import "walletconnect-vite-patch"

在vite.config.ts修改配置

    define: {
      globals: {
      // 这个是解决打开walletconnect不会提示ws错误
        globalThis: 'globalThis',
      },
    },
    build: {
      rollupOptions: {
        output: {
          globals: {
           // 这个是解决打包问题
            globalThis: 'globalThis',
          },
        }
      }
    },

使用walletconnect

import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal";
let connector = new WalletConnect({
    bridge: "https://bridge.walletconnect.org", // Required
    qrcodeModal: QRCodeModal,
})
// Events: connect, disconnect, session_request, session_update, call_request, wc_sessionRequest, wc_sessionUpdate
    // Subscribe to connection events
    connector.on("connect", (error, payload) => {
        // 链接
        if (error) {
            throw error;
        }

        // Get provided accounts and chainId
        console.log('connect')
        console.log(payload)
        // address = ...

        // Tip localstorage will add walletconnect
    });

    connector.on("session_update", (error, payload) => {
        // 更新
        if (error) {
            throw error;
        }

        // Get updated accounts and chainId
        console.log('session_update')
        console.log(payload)
    });

    connector.on("session_request", (error, payload) => {
        // 请求
        if (error) {
            throw error;
        }

        // Get updated accounts and chainId
        console.log('session_request')
        console.log(payload)
    });

    connector.on("wc_sessionRequest", (error, payload) => {
        if (error) {
            throw error;
        }

        // Get updated accounts and chainId
        console.log('wc_sessionRequest')
        console.log(payload)
    });

    connector.on("wc_sessionUpdate", (error, payload) => {
        if (error) {
            throw error;
        }

        // Get updated accounts and chainId
        console.log('wc_sessionUpdate')
        console.log(payload)
    });

    connector.on("call_request", (error, payload) => {
        if (error) {
            throw error;
        }

        // Get updated accounts and chainId
        console.log('call_request')
        console.log(payload)
    });

    connector.on("disconnect", (error, payload) => {
        // 断开
        if (error) {
            throw error;
        }

        // Delete connector
        console.log('Delete connector')
        console.log(payload)
    });
    // 触发链接
    connector.createSession()

注意:要想测试在手机浏览器链接钱包功能,需要正确上网和在https下才能实现

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值