ERC-721
Pros
- Permite la creación de múltiples tipos de tokens dentro de un mismo contrato
- Admite tokens fungibles y no fungibles
- Más eficiente y rentable para crear una amplia gama de NFTs
Cons
- Sólo permite crear un único tipo de token
- Ineficiente para crear múltiples tipos de NFT
Utilizaremos un contrato basado en la [implementación ERC-721]() de la biblioteca OpenZeppelin.
a) Primero, instala la librería Open Zeppelin para heredar sus clases:
b) A continuación, crea un archivo llamado NFT.sol dentro de la carpeta contracts.
![Document image Document image](https://images.archbee.com/fvIvegFmiu_uo-9_fBMDD/r1mWD4hODJCq42QmMq_PW_nftsol-screenshot.png?format=webp)
c) Por último, añade el siguiente contrato inteligente al archivo NFT.sol .
Ten en cuenta que hemos llamado a nuestro contrato NFT, este puede ser cualquier nombre. El nombre será importante en el siguiente paso.
En este ejemplo, utilizaremos Ether.js
4. Define variables de entorno con dotenv
- Instala dotenv
Mantén tus Claves Privadas en Secreto
Las claves privadas deben ser mantenidas en secreto y no comprometidas en ningún repositorio de código. En el ejemplo de este tutorial, el archivo .env debe añadirse a su archivo .gitignore y mantenerse local. Por ejemplo, consulta la guía de MyCrypto Protégete a ti mismo y a tus fondos.
- Crea un archivo .gitignore
Un gran ejemplo de un archivo Solidity .gitignore puede ser consultado aquí
![Document image Document image](https://images.archbee.com/fvIvegFmiu_uo-9_fBMDD/UOIPrgi5BJ2rXNPbe8aBm_gitignore-screenshot.png?format=webp)
- Crea un archivo .env en el folder raíz de tu proyecto, y define variables de entorno en el archivo de la siguiente manera
![Document image Document image](https://images.archbee.com/fvIvegFmiu_uo-9_fBMDD/xF8vCnRJD3tkP4GESiWLX_env-screenshot.png?format=webp)
Para asegurarnos de que todo funciona hasta ahora, vamos a compilar nuestro contrato:
a) Dirígete al folder scripts y crea un nuevo archivo llamado deploy_NFT.js
![Document image Document image](https://images.archbee.com/fvIvegFmiu_uo-9_fBMDD/6pLfTelAhDxD5Y6V_5KRi_deploy-screenshot.png?format=webp)
b) Agrega el código mostrado a continuación
- La tarea ejecutará los scripts en la carpeta scripts y guardará los despliegues del contrato en el disco. Cada despliegue se guarda en la carpeta deployments para la red específica.
| Red de prueba | Red principal |
URL del explorador |
Pega la dirección de tu contrato en la barra de búsqueda.
Obtén la dirección de tu contrato de 2 maneras:
- Console.log() output Contract deployed to address: contractNumber
- En deployments/palm_testnet/NFT.json o deployments/palm_mainnet/NFT.json donde también encontrarás la información ABI (Application Binary Interface).
Verás algo parecido a esto una vez desplegado correctamente 👇
![Document image Document image](https://images.archbee.com/fvIvegFmiu_uo-9_fBMDD/B_DStTbgSydfqNg57b9du_contract-creation-screenshot.png?format=webp)
Usando el Contrato Inteligente que acabas de desplegar ahora puedes Acuña NFTs con Hardhat
![Doc contributor](https://s3.amazonaws.com/archbee-animals/lion.png)