🇧🇷
Ethereum Developer Pack - PT
  • Ethereum Developer Pack - PT
  • Módulo 1
    • Introdução a Smart Contracts
      • Fundamentos de Blockchain
        • Histórico
        • Bitcoin
        • O que é Blockchain
        • Conceitos-chave em Blockchain
        • Como funciona a Blockchain
        • Tipos de Blockchain
        • Modelos de Consenso
      • A nova Internet
        • Web 3
        • Elementos Fundamentais
        • Impacto do Ethereum em Diversos Setores
      • Wallets
        • Componentes de uma wallet
        • Tipos de Wallet
        • Códigos Mnemônicos
      • Ethereum 101
        • Smart Contracts
        • Contas
          • Tipos de contas
          • Conteúdo das contas
        • Transações
          • Componentes
          • Ciclo de vida
        • Gás
        • Solidity
        • EVM
          • A máquina de estados
          • Opcodes
          • Como funciona a EVM
          • Clientes de execução
          • DApps
      • Blockchain Explorer
        • Funções de um blockchain explorer
        • Beneficios de utilizar um blockchain explorer
      • Remix
        • Características do Remix
        • Workspaces ou espaços de trabalho
        • Carregar e compilar um contrato
        • Implantar na máquina virtual do Remix (Remix VM)
        • Interagindo com funções
        • Deployar em uma rede pública
      • Crie seu primeiro Smart Contract
  • Módulo 2
    • Fundamentos de Solidity
      • Hello World
      • Tipos de Dados
      • Funções
      • Variáveis
        • Exercício 1
      • Operadores
        • Ejercicio 2
      • Constructor
        • Exercício 3
      • Convenções de nomenclatura
      • Tipos de armazenamento para variáveis
      • Estruturas de Controle
        • Exercício 4
      • Modificadores
      • Eventos
        • Exercício 5
      • Tipos de Referencia
        • Arrays
          • Exercício 6
        • Mappings
          • Exercício 7
        • Structs
          • Exercício 8
      • Address Payable
      • Como os contratos e funções recebem Ether.
      • Transferências de Ether
      • Conceitos Avançados
        • Codificação de ABI
        • Hashing
        • This
        • Herança
        • Abstract
        • Interface
        • Chamada entre contratos
        • EVM
        • ABI
        • Bytecode
        • Opcodes
  • Módulo 3
    • ERCs, Bibliotecas e Padrões de Desenvolvimento
      • Boas Práticas de Desenvolvimento
      • Padrões de Desenvolvimento
      • EIP & ERC
      • ERC-20
      • ERC-721
      • Open Zeppelin
      • Crie um Token ERC-20
      • Almacenamiento Descentralizado: IPFS
      • Crea un Token ERC-721
      • DeFi
  • Módulo 4
    • Kit de ferramentas para desenvolvimento na Ethereum
      • Requisitos para o módulo 4
        • Terminal
        • Git e Github
        • Node.js e npm
        • Visual Studio Code para Solidity
      • Toolkit
        • JSON-RPC
        • Ethers.js
          • Exercício
        • Hardhat
          • Implantação de um contrato no Hardhat
          • Implantação de um contrato em uma rede pública
        • Scaffold-ETH
          • Características do Scaffold-ETHCaracterísticas
          • Como instalar o Scaffold-ETH
  • Módulo 5
    • Segurança, Testes e Auditorias
      • Testes
        • Importância de realizar testes
        • Métodos para testar contratos inteligentes
          • Testes automatizados
          • Testes manuais
        • Conceitos importantes em testes
        • Ferramentas para testes
        • Testes com Hardhat
        • Recursos adicionais
      • Segurança
        • Uma mentalidade diferente de design
        • Principais vulnerabilidades em contratos inteligentes
          • Reentrancy attack (ataque de reentrada)
          • Replay attack (ataque de repetición)
          • Price Oracle Manipulation (Manipulación de Oráculos de Precios)
          • Missing Access Control (Pérdida de Control de Acceso)
          • Reward Manipulation (Manipulación de Recompensas)
          • Failure to Initialize (Falla al Inicializar)
          • Front-running
          • Invariant Breaks (Quebra de Invariantes)
          • Mishandling of ETH (Má gestão de ETH)
          • Denial of Service (DoS - Negação de Serviço)
          • Integer overflow and underflow (Overflow e Underflow de inteiros)
          • Phishing y Typosquatting
        • Recursos adicionais
      • Auditoria de smart contracts
        • Processo de Auditoria
        • Ferramentas
        • Como se preparar para uma auditoria
        • O teste Rekt
        • Desafios
        • Recursos adicionais
  • Contribuye
    • Kipu Explorer
Powered by GitBook
On this page
  • Passo 1: Configurar o Ambiente de Desenvolvimento
  • Passo 2: Escrever o Contrato ERC
  • Passo 3: Implantar o Contrato
  • Passo 4: Interagir com o contrato
  • Paso 5: Verificar y Probar
  1. Módulo 3
  2. ERCs, Bibliotecas e Padrões de Desenvolvimento

Crie um Token ERC-20

Para criar um token ERC-20 utilizando a biblioteca da OpenZeppelin em Solidity, você deve seguir alguns passos essenciais que envolvem configurar seu ambiente de desenvolvimento, escrever o contrato inteligente utilizando as bibliotecas da OpenZeppelin, implantá-lo na blockchain e verificar seu funcionamento.

Passo 1: Configurar o Ambiente de Desenvolvimento

Antes de começar a escrever seu contrato, você precisará configurar um ambiente de desenvolvimento. Nós estamos utilizando o Remix, mas também poderia ser usado o Hardhat ou o Truffle. Para este exemplo, vamos usar o Remix por sua simplicidade e facilidade de uso.

  1. Instalação do OpenZeppelin: No Remix, você pode importar diretamente do GitHub. Para ambientes como Truffle ou Hardhat, é necessário instalar o OpenZeppelin

    npm install @openzeppelin/contracts

Passo 2: Escrever o Contrato ERC

Aqui está um exemplo básico de como definir um token ERC-20 utilizando OpenZeppelin. Este token terá um suprimento fixo e características básicas

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

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply);
    }
}

Explicação do Código

  • Importação: Importamos ERC20.sol de OpenZeppelin, que contém a implementação padrão de um token ERC

  • Contrato MyToken: Estende ERC20 de OpenZeppelin. O construtor requer um fornecimento inicial initialSupply e chama ERC20, o construtor de OpenZeppelin, para definir o nome (“MyToken”) e o símbolo do token (“

  • Minting: _mint é uma função utilizada para criar a quantidade inicial de tokens. Esses tokens são atribuídos ao endereço que implanta o contrato (geralmente o seu endereço).

Passo 3: Implantar o Contrato

Usando Remix:

  1. Compile o Contrato: No Remix, compile o contrato selecionando a versão correta do Solidity que coincida com a declaração em seu código

  2. Implantar: Mude para a aba "Deploy & Run Transactions". Selecione o ambiente "Injected Web3" se estiver usando o Metamask e certifique-se de estar conectado à rede desejada (por exemplo, Sepolia).

  3. Execute a Implantação: Insira o fornecimento inicial no campo do construtor e clique em

Passo 4: Interagir com o contrato

Una vez desplegado, puedes interactuar con tu token a través de Remix. Bajo la pestaña "Deployed Contracts", encontrarás tu contrato desplegado con todas las funciones de ERC-20 disponibles para interactuar desde la interfaz.

Paso 5: Verificar y Probar

Es crucial verificar que tu token funcione como esperas:

  • Prueba las Funciones: Utiliza Remix para transferir tokens entre direcciones, consultar balances, y probar las aprobaciones.

  • Verifica y publica el contrato: Usando Etherscan es recomendable que verifiques y publiques el contrato de forma que quienes quieran ver qué hace tu contrato puedan comprobar que cumple con el estándar.

  • Considera Auditorías: Si planeas lanzar tu token en mainnet considera realizar una auditoría de seguridad.

Crear un token ERC-20 es relativamente sencillo con OpenZeppelin, pero asegúrate de comprender todos los aspectos legales y de seguridad asociados con la creación y distribución de un nuevo token.

PreviousOpen ZeppelinNextAlmacenamiento Descentralizado: IPFS

Last updated 23 days ago