web3 从地址获取名称

问题描述 投票:0回答:2
import Web3 from "web3";


useEffect(() => {
const web3 = new Web3(window.ethereum);

web3.eth.ens.getAddress("ethereum.eth").then(function (address) {
    console.log(address);
});
}, []);

在这里使用这个代码我从以太名称中得到

address
有什么办法可以从地址中获取姓名

web3.eth.ens.getOwner("0xc74E8eFaFE54481bD109f97422AeBca607499f57").then(function (address) {
    console.log(address);
});

我正在尝试上面的代码,但它不起作用 如果我输入

0xc74E8eFaFE54481bD109f97422AeBca607499f57

我应该得到

ethereum.eth

javascript ethereum web3js metamask
2个回答
2
投票

ENS 文档可以看到,web3.js 无法执行“反向解析”,即从地址获取 ENS 名称。但是,您可以通过 ensjs API 执行此操作,如下所示:

const address = '0xc74E8eFaFE54481bD109f97422AeBca607499f57';
var name = await ens.getName(address)
// Check to be sure the reverse record is correct.
if(address != await ens.name(name).getAddress()) {
  name = null;
}

0
投票

ENS 现在支持反向解析,如文档中所述:

维姆解决方案:

import { publicClient } from './client';

const ensName = await publicClient.getEnsName({
    address: '0xc74E8eFaFE54481bD109f97422AeBca607499f57',
});

瓦格米解决方案:

import { useEnsName } from 'wagmi';

const { data: ensName, chainId } = useEnsName({
    address: '0xc74E8eFaFE54481bD109f97422AeBca607499f57',
});
© www.soinside.com 2019 - 2024. All rights reserved.