Todo lo que necesita saber sobre la creación de NFT en Velas
La creación de NFT en Velas puede brindar a los equipos varios beneficios. Estos incluyen aprovechar los contratos inteligentes que son compatibles con Ethereum, disfrutar de una velocidad de transacción ultrarrápida, estar libre de altas tarifas de gasolina y más.
Contenido:
Introducción
NFT es una tecnología revolucionaria que puede beneficiar a los usuarios de varias maneras. Por ejemplo, otorga a los usuarios una prueba de propiedad sobre sus activos digitales como nunca antes. Además, las NFT pueden conducir a una economía creadora completamente nueva.
Con todas las ventajas que brindan las NFT, todos hablan de potenciar sus proyectos con NFT. Pero, ¿sabe cómo desarrollar contratos inteligentes compatibles con NFT? No se preocupe si no, porque este artículo lo guiará a través de todos los pasos para crear contratos inteligentes NFT en Velas Testnet.
Tenga en cuenta que este tutorial le mostrará cómo crear un NFT uno a uno en lugar de una colección. Entonces, este contrato inteligente permitirá a los usuarios editar cualquiera de sus fotos o videos como NFT.
¿Por qué Velas?
Hay muchos protocolos de blockchain disponibles. Pero los desarrolladores aún enfrentan problemas al usarlos. Por ejemplo, Ethereum lucha con las altas tarifas de gasolina y el lento procesamiento de transacciones, mientras que otras cadenas de bloques requieren que los desarrolladores usen lenguajes desconocidos como Rust.
Con Velas, la mayoría de esas preocupaciones no existen. La solución de Velas hereda el mejor ADN de la tecnología de Solana y la complementa con características adicionales para respaldar la compatibilidad con EVM. Esto brinda a los usuarios y desarrolladores una plataforma ideal que garantiza una excelente experiencia de usuario con un tiempo de transacción más rápido. Además, simplifica el proceso de desarrollo con el soporte de Solidity.
requisitos previos
Para seguir, debe tener Node plus Yarn, el administrador de paquetes. Además, debe tener conocimientos básicos de Solidez. Entonces, si no está familiarizado con él, equípese con los conceptos básicos de Solidity y casco primero.
Configuración
Para configurar nuestro proyecto, ejecute el siguiente comando en la terminal.
npx hardhat
Verá el siguiente resultado si no tiene instalado Hardhat.
Escribe y y haga clic ingresar, y se procederá a instalar el Hardhat. Sin embargo, si ya tiene Hardhat, no le mostrará el aviso para la instalación de Hardhat. En su lugar, le hará algunas preguntas sobre cómo desea configurar el proyecto.
Queremos un proyecto Javascript básico en nuestra carpeta actual, así que simplemente haga clic en ingresar para todo.
Luego tenemos que instalar nuestras dependencias para el proyecto. Para instalarlos, usaremos el siguiente comando.
npm install --save-dev "[email protected]^2.10.1" "@nomicfoundation/[email protected]^1.0.1" "@openzeppelin/contracts" "dotenv"
Como estamos usando Yarn, tenemos que instalar bibliotecas que usa hardhat-toolbox.
yarn add --dev @nomicfoundation/hardhat-toolbox @nomicfoundation/hardhat-network-helpers @nomicfoundation/hardhat-chai-matchers @nomiclabs/hardhat-ethers @nomiclabs/hardhat-etherscan chai ethers hardhat-gas-reporter solidity-coverage @typechain/hardhat typechain @typechain/ethers-v5 @ethersproject/abi @ethersproject/providers
Si está utilizando la versión 7 de npm o versiones posteriores, estas bibliotecas se instalarán directamente.
Vale la pena señalar que debemos dar un paso más antes de escribir un contrato inteligente. Eso es para eliminar cualquier .Sol archivos que ve en la carpeta de contratos y cree un nuevo archivo llamado VELASNFT.sol. Esta es la carpeta donde escribiremos nuestro contrato.
Cómo escribir un contrato inteligente NFT
Constructor
Para empezar, crearemos un contrato inteligente barebone donde definimos la versión de solidez y creamos un cuerpo de contrato inteligente vacío.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
contract VELASNFT {
}
Tenemos que importar un contrato inteligente base y un contrato inteligente de servicios públicos. En particular, estos son los contratos que se utilizarán para construir nuestro contrato inteligente NFT. El contrato base es ERC721URAlmacenamientouna implementación de ERC721 con administración de URI de token basada en almacenamiento.
Counters es un contrato de servicios públicos que se utilizará para contar la cantidad de NFT acuñados.
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
Nuestro contrato heredará el contrato base. Esto permitirá a los usuarios acceder a todas las funciones del contrato base y nuestros contratos inteligentes.
contract VELASNFT is ERC721URIStorage {
}
Ahora podemos escribir constructor para nuestro contrato. En particular, nuestro constructor no tendrá ningún argumento, pero debe pasar el nombre y el símbolo al constructor ERC721.
constructor() ERC721("VELASNFT", "VN") {}
Al final de este paso, su contrato inteligente debería verse así.
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
contract VELASNFT is ERC721URIStorage {
constructor() ERC721("VELASNFT", "VN") {}
}
Escribiendo la función mint
Para la función de menta, primero debemos configurar el contador. Pegue el siguiente fragmento dentro del contrato sobre el constructor.
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
asignamos todas las funciones de la biblioteca Counters a la estructura Counter. Luego crearemos una variable privada llamada _tokenIds.
Ahora comencemos a desarrollar la función. Tomará un argumento: tokenURIy será la URL del archivo json que almacena todos los metadatos. Profundizaremos en los metadatos en las siguientes secciones. La función mint tendrá visibilidad pública y devolverá el ID del NFT acuñado, que será de tipo uint256.
function mint(string memory tokenURI) public returns (uint256) { }
Dentro de la función, primero obtendremos el conteo actual del contador.
Para acuñar un NFT, usaremos _menta función que toma dirección e ID como argumentos. Para la dirección, usaremos la dirección de la persona que llama y la ID será el conteo actual. Después de eso, tenemos que guardar el tokenURI.
Para hacer eso, tenemos que _setTokenURI, que guardará la URI con el ID correspondiente como clave. Al final, incrementaremos el contador y luego la ID del NFT creado.
function mint(string memory tokenURI)
public
returns (uint256)
{
uint256 newItemId = _tokenIds.current();
_mint(minter, newItemId);
_setTokenURI(newItemId, tokenURI);
_tokenIds.increment();
return newItemId;
}
¡Felicidades! ¡Ahora su contrato inteligente puede emitir NFT! Aquí está el resumen de todo el contrato.
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.9;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
contract VELASNFT is ERC721URIStorage {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() ERC721("VELASNFT", "VN") {}
function mint(string memory tokenURI)
public
returns (uint256)
{
uint256 newItemId = _tokenIds.current();
_mint(msg.sender, newItemId);
_setTokenURI(newItemId, tokenURI);
_tokenIds.increment();
return newItemId;
}
}
Cómo implementar el contrato
Hemos construido nuestro contrato inteligente NFT. Aquí viene el paso emocionante, el despliegue. Pero antes de implementar el contrato, debemos compilarlo y escribir un script que implemente el contrato. Para compilar el contrato, ejecute el siguiente comando en la terminal.
npx hardhat compile
Verá el siguiente resultado.
Ahora pasemos a la siguiente etapa, escribiendo un script para implementar este contrato inteligente. Para hacerlo, iremos a la carpeta de scripts y abriremos el archivo deployment.js. Luego, elimine todo el contenido y pegue el siguiente fragmento en ese archivo.
const hre = require("hardhat");
async function main () {
// We get the contract to deploy
const VELASNFT = await hre.ethers.getContractFactory('VELASNFT');
console.log("Deploying NFT contract...");
const velasnft = await VELASNFT.deploy();
await velasnft.deployed();
console.log('NFT contract deployed to:', velasnft.address);
}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
Antes de implementar el contrato, debemos agregar detalles sobre Velas testnet al archivo hardhat.config.js. Abra el archivo y agregue la configuración de la red de prueba de Velas.
require("@nomicfoundation/hardhat-toolbox");
const dotenv = require('dotenv');
dotenv.config();
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.9",
networks: {
velastestnet: {
url: `https://evmexplorer.testnet.velas.com/rpc`,
accounts: [process.env.PRIVATE_KEY]
}
}
};
También vale la pena mencionar que antes de implementar el contrato, debe agregar claves privadas para su billetera al archivo .env y tener algún token VLX de testnet en la billetera. Puede obtener tokens de testnet de aquí.
Ahora que tenemos todo configurado, ejecute el siguiente comando en la terminal.
npx hardhat run scripts/deploy.js --network velastestnet
Si el comando se ejecuta con éxito, verá un resultado similar al que se muestra a continuación en su terminal.
Mint el NFT
A medida que se implementa el contrato inteligente, podemos acuñar el NFT desde la terminal. Para hacer eso, primero inicie la consola del casco usando el siguiente comando.
npx hardhat console --network velastestnet
La salida se muestra a continuación.
Luego crearemos la variable de contrato llamada velasnft. Él getContractAt El método devolverá el objeto del contrato.
const velasnft = await ethers.getContractAt("VELASNFT", '0x587133187DEC8E1D5a964254B42FF3627a649313')
Consulte el resultado que se muestra a continuación.
Para acuñar el NFT, utilizaremos el método mint del velasnft variable. También tenemos que pasar el enlace de los metadatos al método. Puede leer más sobre los estándares de metadatos AQUÍ.
await velasnft.mint("https://metadatastorage.com/velasnft/0")
Echa un vistazo a la salida a continuación.
Ahora es el momento de comprobar el propietario de la NFT. Desde que acuñamos usando el propietario de método, ahora pasemos el índice del NFT que acuñamos.
await velasnft.ownerOf(0)
Así es como obtenemos el resultado del propietario de NFT.
Conclusión
En el artículo, hemos aprendido cómo escribir un contrato inteligente de NFT que permite a los usuarios acuñar NFT. Además, hemos logrado implementarlo en Velas testnet. Ahora, puede desarrollar nuevas aplicaciones basadas en NFT y explorar el ecosistema dinámico de Velas.
También puede consultar cómo crear un DAO en Velas a través de este enlace.
Velas quiere empoderar a aquellos que se esfuerzan por acelerar el desarrollo de Web3. Por lo tanto, Velas ha lanzado un programa de subvenciones de $100 millones para cumplir con esta misión. Mientras tanto, este programa también tiene como objetivo apoyar la expansión del ecosistema Velas.
Con el programa de becas de Velas, los desarrolladores pueden hacer realidad sus emocionantes ideas de manera más eficiente. Cada proyecto tiene la oportunidad de recibir hasta $100,000 en financiamiento. Además, los equipos seleccionados tendrán acceso a otros recursos para fomentar el desarrollo de sus proyectos, incluidos marketing, consultoría técnica y más.
El programa de subvenciones cubre una amplia gama de categorías, que incluyen, entre otras, DeFi, NFT, juegos basados en blockchain y más.
Si está interesado en acelerar la adopción masiva de criptomonedas y blockchain, Solicite ahora para unirse al ecosistema en constante evolución de Velas.
Encuentre más sobre velas:
Descargo de responsabilidad — Este es un artículo patrocinado. DappRadar no respalda ningún contenido o producto en esta página. DappRadar tiene como objetivo proporcionar información precisa, pero los lectores siempre deben hacer su propia investigación antes de actuar. Los artículos de DappRadar no pueden considerarse consejos de inversión.
[
Fuente