[英]How to extract image URL from ens avatar text record
当使用 ethers JavaScript 库从 Ethereum 名称服务中检索 ENS 文本记录时。 我从文本记录中获得了 NFT URI,但没有从图像 URL 中获得。 请问有什么方法/服务可以将此元数据 URI 转换为 HTTPS 图像 URL。
重建:
TERMINAL : npm install --save ethers
代码:
var ethers = require('ethers');
var url = 'https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161';
var provider = new ethers.providers.JsonRpcProvider(url);
async function main() {
const resolver = await provider.getResolver("brantly.eth");
const avatar = await resolver.getAvatar();
const avatarMetaData = await resolver.getText("avatar");
console.log(`Avatar Metadata: ${avatarMetaData}`);
}
main();
.
Output: Avatar Metadata: eip155:1/erc721:0xb7F7F6C52F2e2fdb1963Eab30438024864c313F6/2430
EIP155... 不是 imageURL。 我希望它以 {https://...} 的形式出现。 有没有办法实现这一点或将 NFT URI EIP155... 转换为图像或图像 URL。
据我所知,您必须完成整个过程才能获得该 IPFS URI。
您将需要从返回的头像字符串(最后 2 部分)中获取合约地址和令牌 ID,并调用 tokenURI ABI 方法,解析 JSON 并在那里读取图像:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
const contract = new ethers.Contract(address, abi, signer);
const uri = await contract.tokenURI(tokenId)
const data = (await axios.get(uri)).data;
const image = data.image;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.