Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
¿Cómo se pueden cargar metadatos json en IPFS mediante códigos javascript y cómo se puede acuñar programáticamente esta URL mediante la interfaz?

Comienzo a estudiar NFT basado en el flujo del proyecto IPFS: 1- instalar IPFS 2- cargar una foto de activos de IPFS y obtener un hash 3- crear un archivo json de metadatos con esta URL hash

 { "name": "NFT", "description": "This image shows the true nature of NFT.", "image": "https://ipfs.io/ipfs/QmUnMkaEB5FBMDhjPsEtLyHr4ShSAoHUrwqVryCeuMosNr" }

4- cargue este archivo json en IPFS y obtenga la siguiente URL hash

 https://ipfs.io/ipfs/QmNSKewexhgY4rYwPoxPgNFN7BSjeiLXJif9q5FjeCrsmg

5-Ir a la solidez y crear la función de acuñación e implementar mediante la red MATIC Mumbai

 // SPDX-License-Identifier: MIT pragma solidity ^0.8.6; import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol"; import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol"; contract newNFT is NFTokenMetadata, Ownable { constructor() { nftName = "Synth NFT"; nftSymbol = "SYN"; } function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner { super._mint(_to, _tokenId); super._setTokenUri(_tokenId, _uri); } }

6-Después de implementar este contrato y menta de la siguiente manera

MENTA

7- vaya a opensea testnet and collection, elija mumbai e inserte la dirección del propietario de NFT

8 - finalmente ver NFT en la colección testnet

Pero quiero hacer esto programáticamente en javascript. ¿Cómo puedo cargar el archivo json de metadatos en IPFS mediante javascript y ya hay una plantilla? ¿Dónde está la fuente? Lo entiendo, gracias. Soy principiante en NFT.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay muchas maneras de hacer esto en javascript. Si desea hacerlo todo en un solo archivo, primero debe implementar sus archivos en IPFS. Recomiendo utilizar alguna de las pocas API existentes para hacerlo más fácil, como Moralis, Nft.storage o Piñata.

Con NFT.storage, puede hacer algo como esto para implementar IPFS:

 const names = [ "Test nft 1", "Test nft 2" ]; async function storeImage() { const content = await fs.readFile( path.resolve(__dirname, "../images/owl_articles.png") ); const promisesToAwait: Promise<any>[] = []; names.forEach((name) => { promisesToAwait.push( client.store({ name, description: `At vero eos et accusamus et iusto odio dignissimos.`, image: new File([content], "owl_articles.png", { type: "image/*" }), }) ); }); const responses = await Promise.all(promisesToAwait); console.log(responses); } async function main() { await storeImage(); } main();

El fragmento de código anterior implementará una matriz de archivos json en IPFS, dados los names de la matriz. Todos tienen la misma image y description en aras de la simplicidad del ejemplo.

En moralis, puedes hacer algo similar:

 const jsonFile = new Moralis.File('file.json', { base64: btoa(JSON.stringify({ name, description, image: imageURL })) });

El código anterior también se implementará en ipfs, pero de una manera diferente. No sé por qué en este momento, pero mientras este enfoque de Moralis lo implementa con ipfs://{hash} NFt.storage, el enfoque lo implementa como ipfs://{hash}/metadata.json .

De todos modos, después de usar cualquiera de los procesos anteriores, debe acuñar su NFT pasando el URI como parámetro.

Usando moralis, puedes hacerlo así:

 const jsonIpfsLink = `ipfs://${(jsonFile as any).hash()}/metadata.json`; await Moralis.Web3.executeFunction({ ...options, functionName: 'create', params: { _initialSupply: '10', _uri: jsonIpfsLink } });

El código anterior llama al método create desde mi contrato ERC1155. El método de contratación se muestra a continuación:

 /** * @dev Creates a new token type and assigns _initialSupply msg.sender address * @param _initialSupply amount to supply the first owner * @param _uri URI for this token */ function create(uint256 _initialSupply, string memory _uri) public { _uris[lastId.current()] = _uri; creators[lastId.current()] = msg.sender; _mint(msg.sender, lastId.current(), _initialSupply, ""); emit ArticleMinted(msg.sender, _uri, lastId.current(), _initialSupply); lastId.increment(); }

Mi ejemplo usa el patrón ERC1155, pero debería ser muy similar al patrón ERC721. Parece que no está utilizando ninguno de ellos en su contrato, pero le recomiendo encarecidamente que lo haga. Además, Moralis te haría la vida más fácil. Sugeriría usarlo en su proyecto front-end.

Estoy creando un mercado de NFT y utilizo prácticamente el código anterior para implementarlo en IPFS e inmediatamente después.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda