- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有可能使用 web3 获取 Metamask 个人资料图片和名称吗?我正在使用 web3 前端的 react 。据我所知,我使用 web3.eth.get.Accounts().then(rsp=>rsp[0])
来获取钱包。谁能给我解释一下?
最佳答案
可能已经太晚了,但我经过一些研究发现了这一点。我将在下面以最好的方式解释它。它处理大多数边缘情况。
安装:
npm install web3
)npm install @web3-react/core
)npm install @web3-react/注入(inject)连接器
)npm install @metamask/jazzicon
)从“@web3-react/core”导入 {useWeb3React}
useWeb3React()
是由@web3-react/core
提供的钩子(Hook)。这会返回对象中的 account
和一些其他值。由于您只要求提供名称和图像,因此我将在此处进行说明。
附言没有与任何加密钱包关联的名称。有一个地址。由于 metamask 基于以太坊区 block 链,它的地址将类似于 0x0EfGhjuw....
。您可以通过我提到的 account
变量获取它。
const {account, active} = useWeb3React()
useEffect(()=>{
console.log(account) //prints to console the wallet address of metamask (0xfEgh67...)
// also prints it everytime you change the account in metamask
}, [account])
弄清楚这些事情后,让我们看看如何取回 metamask 的帐户图像。
从“@metamask/jazzicon”导入 jazzicon
const {account} = useWeb3React()
const avatarRef = useRef()
useEffect(() => {
const element = avatarRef.current;
if (element && account) {
const addr = account.slice(2, 10);
const seed = parseInt(addr, 16);
const icon = jazzicon(20, seed); //generates a size 20 icon
if (element.firstChild) {
element.removeChild(element.firstChild);
}
element.appendChild(icon);
}
}, [account, avatarRef]);
return(
<div ref={avatarRef}></div>
)
我们使用 jazzicon
的原因显然是 metamask 也使用 jazzicon 来生成钱包图像。上述逻辑从您传递的钱包地址生成一个整数。该整数决定了您的帐户形象。这非常有效,据我所知,metamask 使用相同的算法来生成帐户图像。
关于web3js - 获取 metamask 个人资料图片和名称使用 web3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71678374/
我正在按照精通以太坊 (https://www.onlineprogrammingbooks.com/mastering-ethereum/) 一书的说明进行操作,但遇到了障碍。我已经设置了 Meta
我正在尝试运行一个基本程序来检测用户是否安装了 window.ethereum。当我运行我的程序时,我得到“@metamask/detect-provider:无法检测到 window.ethereu
在javascript中我运行契约(Contract)的方法 contract[methodName](...params, { from: myAccount }, (err, response)
我目前正在使用此代码发送交易: const provider = ethers.getDefaultProvider("ropsten", { infura:
我试图遵循 devto.io 中的教程并将交易发送到智能合约,我需要使用运行时创建的帐户之一连接我的 MetaMask 钱包 npx hardhat node命令。 为此,我打开 MetaMask 并
我已经 connected metamask to a node用安全帽创建。我可以在 http://localhost:8545 上连接到此节点将链 id 设置为与安全帽网络链 id 匹配后元掩码中
我想获取用户在 Metamask 中添加的所有帐户。我尝试了所有 web3.js 方法来获取帐户,但我总是只得到一个帐户,该帐户始终是当前选定的帐户。 根据 web3.js 文档,web3.eth.g
accounts[0]返回 undefined在这段代码中。 const accounts = await web3.eth.getAccounts() console.log(accounts[0]
在以太坊网络中与 DApps 通信是否需要 metamask?如果不是,那么与智能合约交互的另一种方式是什么? 最佳答案 开始使用 Ethereum 不是必需的,但非常少使用 MetaMask 的网络
在以太坊网络中与 DApps 通信是否需要 metamask?如果不是,那么与智能合约交互的另一种方式是什么? 最佳答案 开始使用 Ethereum 不是必需的,但非常少使用 MetaMask 的网络
我看过这里的文档 https://metamask.github.io/metamask-docs/Main_Concepts/Getting_Started 但我不确定如何检测退出 MetaMask
我们有可能使用 web3 获取 Metamask 个人资料图片和名称吗?我正在使用 web3 前端的 react 。据我所知,我使用 web3.eth.get.Accounts().then(rsp=
我们有可能使用 web3 获取 Metamask 个人资料图片和名称吗?我正在使用 web3 前端的 react 。据我所知,我使用 web3.eth.get.Accounts().then(rsp=
我的 Java 游戏有一个 KeyBinding,我使用元键和 Z 键向左移动。 i.put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, 4), "Z"); m.put
在我的 React 应用程序中,我正在检查 web3,如下所示,但我需要在 chrome 上安装 metamask 后至少刷新一次页面。 detectAndReadMetaMaskAccount()
有各种教程教如何激活和停用 Metamask 钱包,或者一般的任何加密钱包,但在所有这些教程中我都遇到了同样的问题,如下所示: 当我停用我的帐户时,它仍然显示在 Metamask GUI 中您已连接,
我在基于 ERC20 的 Polygon 上创建了一个新合约,其中包含一些额外的公共(public)函数。我在向 MetaMask 传达用户正在做什么时遇到了麻烦。 当我执行正常的 ERC20 tra
如何分别指定与Coinbase Wallet和Metamask的连接? 现在,当使用 window.ethereum.enable() 时,Metamask 和 Coinbase 钱包扩展弹出窗口。我
我正在尝试将我的 Metamask 钱包连接到我的 Java Spring-Boot 后端。我试图按照示例 here .我能够自动生成随机数并毫无问题地接收钱包 ID。我正在尝试验证来自服务器上钱包的
我们知道,metamask 从 2020 年 1 月 13 日起将不再注入(inject) web3.js。我们应该采取哪些方法来停止对 web3 的依赖? 此外,我们如何使用目前正在注入(injec
我是一名优秀的程序员,十分优秀!