Al usar la biblioteca JavaScript de ethers para recuperar registros de texto ENS del Servicio de nombres de Ethereum. Obtuve el URI de NFT del registro de texto, pero no la URL de la imagen. Por favor, ¿hay alguna forma/servicio para convertir este URI de metadatos en una URL de imagen HTTPS?
PARA RECREAR:
TERMINAL : npm install --save ethersCódigo:
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/2430El EIP155... No es una URL de imagen. Preferiría que viniera en forma de {https://...}. ¿Hay alguna forma de lograr esto o convertir el NFT URI EIP155... en una imagen o URL de imagen?
Por lo que sé, tendrá que pasar por todo el proceso para obtener ese IPFS URI.
Querrá tomar la dirección del contrato y la identificación del token de esa cadena de avatar devuelta (las últimas 2 partes) y llamar al método tokenURI ABI, analizar el JSON y leer la imagen allí:
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;