SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
21.11.2024

Aula 099: Implantando Contratos com Truffle

Nesta aula, vamos aprender como implantar contratos inteligentes usando o Truffle, um framework de desenvolvimento popular para Ethereum. O Truffle simplifica o processo de desenvolvimento e implantação, fornecendo ferramentas para compilar contratos, executar testes e implantar em diferentes redes.

Pré-requisitos

Antes de começarmos, certifique-se de que você tenha o seguinte instalado:

  • Node.js
  • npm (Gerenciador de Pacotes do Node)
  • Truffle
  • Ganache (para desenvolvimento de blockchain local)

Você pode instalar o Truffle globalmente usando npm:

npm install -g truffle

Configurando um Novo Projeto Truffle

  1. Criar um Novo Diretório:

    Comece criando um novo diretório para o seu projeto e navegue até ele:

    mkdir meu-projeto-truffle
    cd meu-projeto-truffle
  2. Inicializar um Projeto Truffle:

    Execute o seguinte comando para criar um novo projeto Truffle:

    truffle init

    Este comando gera a estrutura necessária para o seu projeto, incluindo diretórios para contratos, migrações e testes.

Escrevendo um Contrato Inteligente

Crie um novo arquivo chamado SimpleStorage.sol no diretório contracts:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStorage {
    uint256 private storedData;

    function set(uint256 x) public {
        storedData = x;
    }

    function get() public view returns (uint256) {
        return storedData;
    }
}

Este contrato permite que você armazene e recupere um único inteiro sem sinal.

Escrevendo um Script de Migração

Os scripts de migração são usados pelo Truffle para implantar contratos na rede Ethereum. Crie um novo arquivo de migração no diretório migrations, chamado 2_deploy_contracts.js:

const SimpleStorage = artifacts.require("SimpleStorage");

module.exports = function (deployer) {
    deployer.deploy(SimpleStorage);
};

Este script informa ao Truffle para implantar o contrato SimpleStorage.

Configurando o Truffle

Antes de implantar, você pode precisar configurar o arquivo truffle-config.js para especificar as configurações de rede. Para desenvolvimento local com Ganache, você pode manter simples. Certifique-se de que há uma configuração para a rede de desenvolvimento assim:

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",     // Localhost (padrão: nenhum)
      port: 7545,            // Porta da GUI do Ganache
      network_id: "*",       // Qualquer rede (padrão: nenhum)
    },
  },
  // Configurações adicionais podem ser adicionadas aqui
};

Executando o Ganache

Antes de implantar, você precisará executar o Ganache. Se você estiver usando a versão GUI, basta iniciar o aplicativo. Se preferir a versão CLI, você pode instalá-la globalmente usando npm e depois executar:

npm install -g ganache-cli
ganache-cli

Isso iniciará uma blockchain Ethereum local para fins de teste.

Implantando o Contrato

Agora que tudo está configurado, você pode implantar seu contrato na blockchain local do Ganache. Abra um terminal no diretório do seu projeto e execute:

truffle migrate --network development

Este comando compila seus contratos e os implanta na rede especificada (neste caso, a rede development).

Interagindo com o Contrato

Após a implantação bem-sucedida, você pode interagir com o contrato implantado usando o Truffle Console. Abra uma nova janela de terminal e inicie o Truffle Console com o seguinte comando:

truffle console --network development

Dentro do console, você pode interagir com seu contrato:

// Obter a instância do contrato implantado
let instance = await SimpleStorage.deployed();

// Definir um valor
await instance.set(42);

// Obter o valor armazenado
let value = await instance.get();
console.log(value.toString()); // Deve exibir: 42

Conclusão

Nesta aula, cobrimos como configurar um projeto Truffle, escrever um contrato inteligente simples, implantá-lo em uma blockchain local usando o Ganache e interagir com ele. O Truffle oferece um processo simplificado para o desenvolvimento em Ethereum, facilitando a gestão de contratos e implantações.

À medida que você avança em sua jornada de desenvolvimento em Ethereum, não hesite em explorar mais recursos avançados oferecidos pelo Truffle, como testes e implantações em redes públicas!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!