strobelt / solidity-armazena-numero

Programa simples para armazenar número com Ethereum e Solidity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DApp simples para armazenamento de número com Truffle Framework

Descrição

Uma pequena aplicação para demonstrar o fluxo de desenvolvimento com Ethereum e seu ferramental atual, usando Truffle Suite (Truffle, Ganache e Drizzle).

A aplicação consiste em um contrato para guardar e ler um número na blockchain e uma interface web com React e Drizzle para uso desse contrato.

Essa aplicação foi usada como demo na palestra sobre Smart Contracts Ethereum que ministrei dia 11/03/2019 no High5Devs

Slides

Instalação

  1. Instalar o Truffle:

    npm i -g truffle
  2. Instalar o Ganache (ou Ganache CLI):

    npm i -g ganache-cli
  3. Clonar o repo

  4. Executar o Ganache (ou Ganache CLI)

  5. Na root do projeto compilar os contratos:

    # Isso vai gerar os json dos contratos para utilização futura
    truffle compile
  6. Depois disso, ainda na root do projeto, executar os testes:

    truffle test
    
  7. Ainda na root do projeto, migrar os contratos:

    # Isso vai efetuar o deploy dos contratos na sua Blockchain executada pelo Ganache
    truffle migrate
  8. Entrar na pasta app e instalar os pacotes npm:

    cd app
    npm i
  9. Ainda na pasta app, executar o projeto React:

    npm start
  10. Instalar o MetaMask em seu browser e conectar com a sua rede local a. Criar (ou importar) uma wallet b. Configurar um Custom RPC com o ip local do Ganache (normalmente http://localhost:7545) c. No Ganache, pegar a private key da conta que quiser usar (na GUI tem uma chave do lado direito para isso) d. No MetaMask, importar a chave privada da conta que pegou do Ganache

  11. Quando acessar o app local (http://localhost:3000/, normalmente), aceitar a conexão do app com a Wallet no MetaMask

  12. Pronto! Quando usar o input para armazenar um número, basta aceitar a transação no MetaMask

Recursos

About

Programa simples para armazenar número com Ethereum e Solidity


Languages

Language:JavaScript 80.3%Language:HTML 12.7%Language:CSS 6.9%