我们在连接某些网站的时候,明明点击的是 Metamask 登录,弹出来的却是 OKX Wallet 或者其他钱包的登录框。这是因为当前网站是基于老的 EIP-1193 获取到的全局 window.ethereum 对象进行链上操作。实际上不同的浏览器钱包插件会存在一个加载顺序的问题,往往是最后一个加载的钱包劫持了 window.ethereum 对象。
2023年5月的时候推出了 EIP-6963 解决方案,基于 EIP-6963 可以实现获取到每个钱包独立的 EIP1193Provider。避免互相影响。
那么我们如何接入呢?
window.ethereum被劫持了以后,有良心的,比如 OKX Wallet,还会给用户一个选择 Metamask 的入口。更多的是直接取而代之了。对于用户来说,就是,点击了 Metamask登录,弹出的是其他钱包。这是一个很迷惑的使用体验,也可以说是 bug。建议做升级。
打开一个新项目的时候,经常会遇到明明依赖已经安装完毕,但是还是有 ts 报错的情况。这种情况一般有两种可能:一种是 ts 没反应过来,直接 reload project就可以。还有一种是 ts 版本号不对,默认使用了 vscode 的 版本号。切换一下就可以。能否通过配置避免这种情况呢?
其实这样也没有根本性的解决问题,既然vscode都有信任工作区的功能了,为什么信任工作区的工程不能自动加载工程文件的ts版本呢? 期待有更好的解决方案。