Introdução
O desenvolvimento de aplicativos descentralizados (DApps) está em alta, especialmente com a crescente popularidade de blockchains como Fantom. Considerada uma plataforma rápida e escalável, Fantom oferece ferramentas e infraestrutura robusta para criação de DApps. Neste guia prático, vamos explorar como utilizar o framework Moralis para acelerar o desenvolvimento de DApps, além de ferramentas essenciais como Truffle e Hardhat para garantir um ciclo de desenvolvimento eficiente. Com uma abordagem passo a passo, iremos cobrir a configuração do ambiente de desenvolvimento, a criação de contratos inteligentes e a implementação de testes, trazendo tudo o que você precisa saber para iniciar sua jornada no desenvolvimento de DApps na rede Fantom.
Etapas
Configuração do Ambiente de Desenvolvimento
Certifique-se de ter o Node.js e o npm instalados em sua máquina. Esses são pré-requisitos para instalar o Moralis, o Truffle e o Hardhat, ferramentas que serão indispensáveis no desenvolvimento de DApps.
commands# Verificar versões do Node.js e npm
node -v
npm -v
# Se não estiverem instalados, faça o download do Node.js em https://nodejs.org/Instalação do Moralis
Instale o Moralis SDK em seu projeto. Esse SDK facilitará a conexão com a rede Fantom e fornecerá serviços essenciais como autenticação e armazenamento. Utilize o npm para instalar o Moralis.
commands# Crie um novo diretório para o seu projeto
mkdir meu-dapp-fantom && cd meu-dapp-fantom
# Inicialize o projeto Node.js
npm init -y
# Instale o Moralis
npm install moralisConfiguração do Hardhat
Instale o Hardhat, uma ferramenta essencial para a criação e teste de contratos inteligentes. Com o Hardhat, você poderá emular a rede e realizar testes locais antes de implantar os contratos na rede Fantom.
commands# Instale o Hardhat
npm install --save-dev hardhat
# Inicie o Hardhat
npx hardhatexampleDurante a inicialização, escolha a opção de criar um projeto básico.
Criação de um Contrato Inteligente
Crie um contrato simples em Solidity, a linguagem de programação para contratos inteligentes. Neste exemplo, criaremos um contrato de armazenamento que permitirá adicionar e recuperar valores.
Storage.solpragma solidity ^0.8.0; contract Storage { uint256 number; function store(uint256 num) public { number = num; } function retrieve() public view returns (uint256){ return number; } }
Compilação do Contrato
Compile o contrato inteligente que você acabou de criar para verificar se não existem erros de sintaxe. O Hardhat fornece um comando fácil para isso.
commands# Compile o contrato
npx hardhat compileDesdobrando o Contrato na Rede Fantom
Configure a conexão com a rede Fantom e o endereço do contrato. Você precisará de um serviço como Infura ou uma chave de API do Moralis para isso. Em seguida, efetue a implantação do contrato.
deploy.jsconst hre = require("hardhat"); async function main() { const Storage = await hre.ethers.getContractFactory("Storage"); const storage = await Storage.deploy(); await storage.deployed(); console.log(`Contrato desdobrado para: ${storage.address}`); } main().catch((error) => { console.error(error); process.exitCode = 1; });
Executando os Testes
Para garantir que o contrato funcione como esperado, você deve escrever e executar testes. O Hardhat pode executar testes de contratos inteligentes utilizando a biblioteca Mocha.
Storage.test.jsconst { expect } = require("chai"); const { ethers } = require("hardhat"); describe("Storage", function () { it("Deve armazenar e recuperar um número", async function () { const Storage = await ethers.getContractFactory("Storage"); const storage = await Storage.deploy(); await storage.store(42); expect(await storage.retrieve()).to.equal(42); }); });
commands# Execute os testes
npx hardhat testIntegrando com o Frontend usando Moralis
Utilize o SDK do Moralis para configurar sua aplicação frontend e conectar-se com a blockchain Fantom. É possível realizar operações como login de usuários e chamadas de funções do contrato diretamente através do Moralis.
index.jsMoralis.start({ serverUrl: "YOUR_SERVER_URL", appId: "YOUR_APP_ID" }); async function login() { const user = await Moralis.authenticate(); console.log(`Usuário logado: ${user.get('username')}`); } // Função para armazenar número async function storeNumber(num) { const options = { contractAddress: "YOUR_CONTRACT_ADDRESS", functionName: "store", abi: [{ "inputs": [{"internalType": "uint256","name": "num","type": "uint256"}], "name": "store", "outputs": [], "stateMutability": "nonpayable", "type": "function" }], params: { num }, }; await Moralis.executeFunction(options); }
Executando o Projeto
Inicie seu frontend e realize testes de integração com o Moralis. Assegure-se de que todas as funções estão conectadas corretamente e funcionando como esperado.
commands# Inicie seu projeto frontend (por exemplo, se você estiver usando um servidor de desenvolvimento como o http-server)
npx http-server
Conclusão
Neste tutorial, você explorou o desenvolvimento de aplicativos descentralizados na rede Fantom usando Moralis, Truffle e Hardhat. Vimos desde a configuração do ambiente de desenvolvimento até a criação e teste de contratos inteligentes. Com esses passos, você está capacitado para desenvolver DApps complexos e aproveitar todas as vantagens que a blockchain oferece. Agora é hora de experimentar e criar suas próprias aplicações inovadoras na blockchain.