【web3】

news/2025/3/25 23:37:11/
检测钱包是否安装

方法一

// npm install @metamask/detect-provider
import detectEthereumProvider from '@metamask/detect-provider'// 检测钱包是否安装
const isProvider = await detectEthereumProvider()
if(!isProvider) {proxy.$modal.msgError("请安装钱包");return
}

方法二

async function detectWallet() {try {// 检查浏览器是否支持以太坊钱包,如果没有检测到window.ethereum,意味着没有钱包扩展被安装if(typeof window.ethereum == "undefined") {proxy.$modal.msgError("请安装钱包");return}const isProvider = window.ethereum// 检测安装的钱包if(isProvider.isMetaMask) {console.log("MetaMask 钱包");}if (isProvider.isTokenPocket) {console.log("TokenPocket 钱包");} else {console.log("其他以太坊兼容钱包");}} catch (e) {console.log(e)}
}

window.ethereum 是浏览器中的以太坊提供者对象,它提供了与区块链交互的功能(例如发送交易,查询余额等)。

注意事项

安装 TP 钱包时,isProvider.isMetaMask 返回也是true,因为 window.ethereum 对象的 isMetaMask 属性并非专门区分不同钱包提供者的标识。很多以太坊兼容钱包会模仿 MetaMask 的行为,在 window.ethereum对象上设置类似的表示,以便兼容现有的 Web3 代码库,因此 isMetaMask 属性不能准确反映当前的钱包类型。

如果想解决这个问题,可以尝试检查其它钱包特定标识符(如 isTokenPocket),或者使用更复杂的逻辑来区分不同的以太坊兼容钱包。

或者通过 ethereum.chainId 区分钱包:window.ethereum.chainId 来查看当前连接的链 ID,然后根据链 ID 推测可能的提供者。


http://www.ppmy.cn/news/1583077.html

相关文章

datawhale组队学习--大语言模型—task4:Transformer架构及详细配置

第五章 模型架构 在前述章节中已经对预训练数据的准备流程(第 4 章)进行了介绍。本章主 要讨论大语言模型的模型架构选择,主要围绕 Transformer 模型(第 5.1 节)、详细 配置(第 5.2 节)、主流架…

Idea中使用Git插件_合并当前分支到master分支_冲突解决_很简单---Git工作笔记005

由于之前用svn习惯了,用的git少,其实在idea中使用git,解决冲突,合并分支,非常的简单,一起来看一下吧. 一定要注意操作之前,一定要确保自己的分支代码,都已经commit提交了,并且push到远程了. 不要丢东西. 可以看到首先,在idea的左下角有个 git,点开以后 可以看到有显示的分支…

大型语言模型(LLM)推理框架的全面分析与选型指南(2025年版)

原创 AI安全工坊 AI安全工坊 2025年02月27日 16:22 江苏 1. 引言 大型语言模型(LLM)已成为驱动智能客服、内容创作、代码生成等领域变革的核心力量。推理框架作为LLM高效部署的关键组件,直接关系到应用的性能、成本和开发效率。为帮助读者…

DeepSeek高校教程大合集(清华,北大,浙大,夏大,天大,湖大,天大,北师大),持续更新

大家好,我是吾鳴。 自从DeepSeek爆火之后,吾鳴就一直在收集和整理关于DeepSeek的教程报告等资料,也收集了有一个多月了。但是有粉丝朋友反馈说,有点凌乱,细找比较麻烦。于是乎吾鳴基于金山文档建设了一个比较简陋的资源…

Python网络编程入门

一.Socket 简称套接字,是进程之间通信的一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间要想进行网络通信需要Socket,Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…

常见框架漏洞--Spring

Spring Data Rest 远程命令执⾏命令(CVE-2017-8046) 环境搭建 漏洞利用 1. 访问 http://your-ip:8080/customers/1 2.然后抓取数据包,使⽤PATCH请求来修改 [{ "op": "replace" , "path": "T(java.lang.Runtime).getRuntime().…

Apache Hive:基于Hadoop的分布式数据仓库

Apache Hive 是一个基于 Apache Hadoop 构建的开源分布式数据仓库系统,支持使用 SQL 执行 PB 级大规模数据分析与查询。 主要功能 Apache Hive 提供的主要功能如下。 HiveServer2 HiveServer2 服务用于支持接收客户端连接和查询请求。 HiveServer2 支持多客户端…

钞票准备好了吗?鸿蒙电脑 5 月见

3月20日,在华为 Pura 先锋盛典及鸿蒙智行新品发布会上,华为常务董事、终端BG董事长、智能汽车解决方案BU董事长余承东表示,华为终端全面进入鸿蒙时代,今年5月将推出鸿蒙电脑。 在3月20日的华为Pura先锋盛典及鸿蒙智行新品发布会上…