diff --git a/.DS_Store b/.DS_Store
index a792445..a8e6865 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/README.md b/README.md
index 677a49f..453d533 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,46 @@
-# NFT Minter
+# NFT Minter (Código Inicial)
+
@@ -141,7 +62,7 @@ const Minter = () => {
{/* METAMASK FACE INTERATIVA */}
@@ -169,7 +90,8 @@ const Minter = () => {
{/* ALERTAS */}
{/* Alertas de Status */}
- {status ? (
+
+ {/* {status ? (
@@ -177,10 +99,20 @@ const Minter = () => {
- ) : null}
+ ) : null} */}
+
+
+
+
+ Olá! Eu sou um exemplo de um alerta.
+
+
+
+
{/* Alertas de Erros */}
- {error ? (
+
+ {/* {error ? (
@@ -188,7 +120,14 @@ const Minter = () => {
- ) : null}
+ ) : null} */}
+
+
+
+ Olá! Eu sou um exemplo de um erro
+
+
+
{/* CARD PRINCIPAL E FORMULÁRIO*/}
diff --git a/src/utils/interact.js b/src/utils/interact.js
index c25b52b..6d44a6b 100644
--- a/src/utils/interact.js
+++ b/src/utils/interact.js
@@ -1,119 +1,12 @@
-import MetadevsContract from "../abis/MetadevsContract.json";
-import { pinJSONToIPFS } from "./pinata.js";
-
require("dotenv").config();
+
const alchemyKey = process.env.REACT_APP_ALCHEMY_KEY;
-const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
-const web3 = createAlchemyWeb3(alchemyKey);
// Função para iniciar o contrato de acordo com a ABI
-export const loadContract = async () => {
- // Retornando os dados da rede pelo ID
- const networkData = MetadevsContract.networks["5777"]; // Para um servidor ganache
-
- const contractABI = MetadevsContract.abi; // Definindo dados da ABI
- const contractAddress = networkData.address; // Definindo endereço do contrato a partir das configs de rede da ABI
-
- if (contractABI && contractAddress) {
- // Caso tenhamos a ABI e o Endereço do contrato, instanciamos o contrato no navegador
- window.contract = new web3.eth.Contract(contractABI, contractAddress);
-
- return {
- success: true,
- contractAddress, // Retornando o endereço do contrato
- };
- } else {
- // Caso não tenhos as variáveis de ABI e o Endereço do contrato
- return {
- success: false,
- };
- }
-};
+export const loadContract = async () => {};
// Função para abrir a opção de conectar carteira na Metamask
-export const connectWallet = async () => {
- if (window.ethereum) {
- // Se a Metamask estiver instalada no navegador
- try {
- // Inicia o processo de habilitação de uma carteira da Metamask para a nossa aplicação
- const address = await window.ethereum.enable();
- const obj = {
- // Objeto contendo o endereço da carteira do usuário e os status da operação
- connectedStatus: true,
- status: "",
- address: address,
- };
- return obj;
- } catch (error) {
- // Caso haja algum erro
- return {
- connectedStatus: false,
- status:
- "🦊 Conecte sua carteira na Metamask no botão no topo à direita",
- };
- }
- } else {
- return {
- connectedStatus: false,
- status:
- "🦊 Por favor, instale a Metamask no seu navegador: https://metamask.io/download.html",
- };
- }
-};
+export const connectWallet = async () => {};
// Função para realizar o Mint de um NFTT a partir dos parâmetros
-export const mintNFT = async (artist, artwork, name) => {
- // Construindo os Metadados
- const metadata = new Object();
- metadata.image = artwork; // Arte do Projeto (link do IPFS da imagem)
- metadata.name = name; // Nome do Lançamento
- metadata.artist = artist; // Nome do Artista
-
- // Gerando o IPFS a partir de um objeto JSON
- const pinataResponse = await pinJSONToIPFS(metadata);
-
- if (!pinataResponse.success) {
- // Caso haja algum erro no processo, iremos retornar um ststus
- return {
- success: false,
- status: "😢 Algo deu errado ao realizar o upload do tokenURI.",
- };
- }
-
- // Armazenando o tokenURI (url do ipfs do objeto JSON que contém os metadados do NFT)
- const tokenURI = pinataResponse.pinataUrl;
-
- // Iniciando contrato e retornando qual o Endereço do Contrato
- const { contractAddress } = await loadContract();
-
- // Realizando transação no Ethereum e retornando os parâmetros da transação
- // obs: iremos utiliza-lo no passo seguinte para retornar a txHash
- const transactionParameters = {
- to: contractAddress, // Qual o endereço do contrato no qual está recebendo a interação
- from: window.ethereum.selectedAddress, // Quem está interagindo com o contrato
- data: window.contract.methods
- .mintNFT(window.ethereum.selectedAddress, tokenURI) // Chamando a função do nosso SmartContract
- .encodeABI(),
- };
-
- // Retornando a transação realizada via Metamask
- try {
- // Solicitando qual o hash (txHash) da transação que foi executada
- // no passo anterior
- const txHash = await window.ethereum.request({
- method: "eth_sendTransaction",
- params: [transactionParameters],
- });
- return {
- // Caso ocorra tudo bem retornamos o hash da transação
- success: true,
- status: "✅ NFT Mintado com sucesso! txHash: " + txHash,
- };
- } catch (error) {
- // Caso algo dê errado
- return {
- success: false,
- status: "😥 Algo deu errado: " + error.message,
- };
- }
-};
+export const mintNFT = async (artist, artwork, name) => {};
diff --git a/src/utils/pinata.js b/src/utils/pinata.js
index 926fc4a..1006e35 100644
--- a/src/utils/pinata.js
+++ b/src/utils/pinata.js
@@ -6,65 +6,7 @@ const bearer = process.env.REACT_APP_BEARER_KEY;
const axios = require("axios");
// Função para converter JSON em IPFS
-export const pinJSONToIPFS = async (JSONBody) => {
- const url = `https://api.pinata.cloud/pinning/pinJSONToIPFS`;
- // Realizando uma requisição para a API do piñata para
- // transformar um objeto JSON em um IPFS
- return axios
- .post(url, JSONBody, {
- headers: {
- pinata_api_key: key,
- pinata_secret_api_key: secret,
- },
- })
- .then(function (response) {
- return {
- success: true,
- pinataUrl:
- "https://gateway.pinata.cloud/ipfs/" + response.data.IpfsHash,
- };
- })
- .catch(function (error) {
- console.log(error);
- return {
- success: false,
- message: error.message,
- };
- });
-};
+export const pinJSONToIPFS = async (JSONBody) => {};
// Função para transformar a imagem da Arte do Projeto em IPFS
-export const pinIMAGEtoIPFS = async (JSONBody) => {
- const url = `https://api.pinata.cloud/pinning/pinFileToIPFS`;
- // Realizando uma requisição para a API do piñata para
- // transformar uma imagem em um IPFS
- return (
- axios
- .post(url, JSONBody, {
- maxBodyLength: "Infinity",
- headers: {
- // Obtendo variáveis de ambiente da nossa conta do piñata
- pinata_api_key: key,
- pinata_secret_api_key: secret,
- },
- })
- // Depois de subir a imagem e obter uma resposta, iremos definir
- // algumas variáveis de stado da aplicação definindo o link/hash do
- // IPFS gerado
- .then(function (response) {
- console.log(response);
- return {
- success: true,
- pinataUrl:
- "https://gateway.pinata.cloud/ipfs/" + response.data.IpfsHash,
- };
- })
- .catch(function (error) {
- // Caso algo dê errado, iremos tratar o erro aqui
- return {
- success: false,
- error: "Erro ao realizar upload da Arte do Trabalho",
- };
- })
- );
-};
+export const pinIMAGEtoIPFS = async (imageBody) => {};
diff --git a/truffle-config.js b/truffle-config.js
deleted file mode 100644
index f27f4f9..0000000
--- a/truffle-config.js
+++ /dev/null
@@ -1,21 +0,0 @@
-module.exports = {
- networks: {
- development: {
- host: "127.0.0.1", // Localhost
- port: 7545, // Port for Ganache
- network_id: "*", // Any network
- },
- },
- contracts_directory: "./src/contracts",
- contracts_build_directory: "./src/abis", // Create JSON files from our Contracts
-
- compilers: {
- solc: {
- version: "^0.8.0", // Fetch exact version from solc-bin (default: truffle's version)
- optimizer: {
- enabled: true,
- runs: 200
- },
- }
- },
-};
\ No newline at end of file