En este repositorio vamos a desplegar un contrato inteligente de NFT para crear una colección de mascotas
Por favor instale o tenga instalado lo siguiente:
- Instalar brownie, sino lo haz hecho, esta es una forma sencilla de hacerlo.
pip install eth-brownie
Sino funciona podrias hacerlo via pipx
pip install --user pipx
pipx ensurepath
# reinicia tu terminal
pipx install eth-brownie
- Clone este repo
https://github.com/camohe90/nft-mix
cd nft-mix
npm install -g ganache-cli
- Instala los contratos de openzeppelin
npm install @openzeppelin/contracts
Si quieres desplagar el NFT en una red de pruebas debes hacer lo siguiente
- Configura las variables de entorno
Configura tus variables de entorno WEB3_INFURA_PROJECT_ID
, y PRIVATE_KEY
.
Puedes obtener un WEB3_INFURA_PROJECT_ID
creando una cuenta en Infura. Creas un nuevo proyecto y seleccionas la red de pruebas rinkeby.
En cuanto a tu PRIVATE_KEY
las puedes obtener de una wallet como metamask.
Tambien vas a necesitar ETH rinkeby de prueba. Puedes obtener ETH usando el siguiente faucet de rinkeby en el siguiente enlace. Si eres nuevo por favor, mira este video.
Puedes agregar tus variables de entorno en el archivo .env
:
export WEB3_INFURA_PROJECT_ID=<PROJECT_ID>
export PRIVATE_KEY=<PRIVATE_KEY>
Luego, debes estar seguro que tu archivo brownie-config.yaml
tenga:
dotenv: .env
Se puede hacer el despliegue en la red de pruebas rinkeby para mostar los NFTS, pero se recomienda que se hagan pruebas y despliegue en la red local, así no es necesario esperar a que las transacciones se procesem
brownie run scripts/simple_collectible/deploy_simple.py --network rinkeby
brownie run scripts/simple_collectible/create_collectible.py --network rinkeby
Por defecto el script usa la metadata del archivo JSON que se cargo en Pinata y se pasa como parametro en create_collectible en la linea 5.
Pero si quisieras subir tus propias imagenes debes subirlas a Pinata y modificar la plantilla que se encuentra en la carpeta metadata/rinkeby/demo.json, ahi solo debes reemplazar la URL de image por la de la imagen que hayas subido a Pinata.
Ese archivo JSON los debes subir a Pinata y por cada collecionable que desees crear debes crear manualmente (por ahora) un archivo JSON
Por ultimo debes reemplazar la URL de nuevo JSON en el script create_collectible en la linea 5.
Para empezar con brownie:
- Documentación de Chainlink
- Revisa la documentación de Chainlink para empezar to get started from any level of smart contract engineering.
- Puedes revisar los otros Brownie mixes que pueden ser usado como punto de partida para tus propios contratos. Allí encontraras ejemplos para emepzar como.
- "Getting Started with Brownie" es un buen tutorial para que te familiarices con Brownie.
- Para más información especificoa, puedes revisar la documentación Brownie.
This project is licensed under the MIT license. Fork del repositorio de https://github.com/PatrickAlphaC
@camohe90 @djmendez-coding