Esse sistema foi desenvolvido para a atividade do módulo de NFT (Non-Fungible Tokens) do MBA em blockchain e criptoativos pela UNICAP que estou cursando. A equipe escolheu desenvolver uma coleção de NFTs destinada à animais de estimação em situação de rua, onde 100% do valor arrecadado será transferido para uma instituição que cuida desses animais.
Saiba mais entrando no site: https://charity-pets.vercel.app.
-
Contrato Inteligente padrão ERC-721, responsável pela criação de cada um dos itens da coleção de 50 NFTs de animais de estimação. O smart contrato está armazenado na rede Polygon em (por o polygonscan aqui).
Foram utilizados as seguintes ferramentas:
-
Hardhat: Ferramenta que torna possível criar o contrato inteligente em uma blockchain local, automatizar processos de compilação e deploy do contrato, verificação do contrato no etherscan, upload de arquivos no IPFS, testes e muito mais.
-
Pinata: Pinata facilita o armazenando de arquivos no IPFS, tirando a necessidade de ter um node próprio para armazenar os arquivos (imagens e metadados dos NFTS) do projeto.
-
Ethers: Biblioteca que permite consultar dados e executar funções da blockchain e a carteira do usuário utilizando Javascript.
-
-
Aplicação front-end desenvolvido em React contendo toda a explicação do projeto e permite usuários interagirem com o contrato inteligente e mintarem até 3 NFTs por carteira.
Entre na pasta backend:
cd backend
Instale as depedências:
yarn install
Crie o arquivo de variáveis de ambiente e preencha os valores.
cp .env.example .env
Primeiramente, deve fazer o deploy do contrato em uma blockchain local:
yarn hardhat node
Em caso de sucesso, será criado um arquivo em artifacts/contracts/CharityPets.sol/CharityPets.json, esse arquivo contém a abi (Application Binary Interface), um mapeamento das funções e parâmetros do contrato inteligente que está armezado como binário na blockchain, o frontend precisa desse arquivo para saber como interagir com o contrato. Copie e cole esse arquivo dentro do projeto frontend:
cp artifacts/contracts/CharityPets.sol/CharityPets.json ../frontend/src/contract/CharityPets.json
Após isso, é necessário dizer para o frontend qual é o endereço do contrato recém criado, para isso, copie o endereço que foi exibido no terminal no processo do deploy, esse endereço normalmente está após o 'deployed to: {address}' e se parece com isso 0x35F3F61b485b165A3D366161a342BeDb0a5F0511
.
Encontrado o endereço, adicione-o na variável ambiente REACT_APP_CONTRACT_ADDRESS
localizado em ../frontend/.env
.
Agora basta rodar o projeto frontend executando:
cd ../frontend npm install npm start
Acesse o aplicativo em seu navegador em http://localhost:3000.
Com isso, você deve ser capaz de executar e interagir com o contrato inteligente armazenado em sua blockchain local.