WEB3DEV

Cover image for Como implantar seu próprio token ERC-20 com Ankr & Hardhat na Rede de Teste ETH Goerli
Banana Labs
Banana Labs

Posted on

Como implantar seu próprio token ERC-20 com Ankr & Hardhat na Rede de Teste ETH Goerli

Se o pensamento 'Eu gostaria de ter meu próprio token' já passou pela sua cabeça, então este artigo servirá para ser seu guia passo a passo para construir e implantar seu próprio token (pense em um nome já).

Primeiros Passos

ERC-20 são tokens amplamente usados na rede Ethereum. Eles são fungíveis, o que significa que você não precisa se importar com o token que possui, pois são todos iguais. E são transferíveis, ou seja, podem ser enviados de um endereço para outro. Isso contrasta com os tokens não fungíveis (NFTs), que são únicos e, portanto, não intercambiáveis.

Agora que entendemos brevemente o que significa ERC20, vamos começar a criar nosso primeiro token ERC20.

Etapa 1: Criar Uma Conta MetaMask

Você precisará da MetaMask para acessar as redes de teste na Ethereum. Neste guia, usaremos Goerli, uma rede de teste Ethereum que permite testes de desenvolvimento de blockchain antes da implantação na rede principal.

No seu navegador, acesse metamask.io e instale o plugin. Depois que a MetaMask estiver instalada e em execução, selecione a rede Goerli.

Etapa 2: Adquira Goerli ETH

Para solicitar fundos, acesse Goerli Faucet e conecte sua carteira metamask à sua conta de teste recém-criada pela interface do usuário. Aguarde alguns momentos e sua carteira deve receber fundos!

Observação: ETH em redes de teste não tem valor real.

Etapa 3: Configurar O Ambiente De Desenvolvimento

Para começar com a instalação do hardhat, primeiro precisamos configurar nosso ambiente de desenvolvimento. Para fazer isso, crie um novo diretório chamado erc20-token-ankr.

  • Agora, inicialize seu novo projeto npm no diretório erc20-token-ankr executando o seguinte comando no terminal.
npm init
Enter fullscreen mode Exit fullscreen mode
npm install dotenv
Enter fullscreen mode Exit fullscreen mode
  • Quando seu projeto estiver pronto, instale o Hardhat, um ambiente de desenvolvimento Ethereum para testar e implantar contratos inteligentes na blockchain.
npm install --save-dev hardhat
Enter fullscreen mode Exit fullscreen mode

Execute npx hardhat, escolha "create a sample project" e digite y para tudo.

Pode levar um minuto ou dois para instalar tudo!

npx hardhat
Enter fullscreen mode Exit fullscreen mode

Seu projeto agora deve conter os seguintes arquivos e pastas: hardhat.config.js, node_modules, package.json, package-lock.json, README.md, scripts e contracts.

  • Vá em frente e exclua o sample-script.js no diretório /scripts e o Greeter.sol no diretório /contracts.

  • Vamos agora instalar um plugin Hardhat que traz a biblioteca Ethereum ethers.js, que permite interagir com a blockchain Ethereum de forma simples.

npm install --save-dev @openzeppelin/hardhat-upgrades
Enter fullscreen mode Exit fullscreen mode
npm install --save-dev @nomiclabs/hardhat-ethers ethers
Enter fullscreen mode Exit fullscreen mode
  • Crie um arquivo .env na pasta raiz do seu projeto e defina a variável de ambiente da seguinte forma. Esta é a chave privada da conta que você pretende usar na Rede Ethereum da MetaMask.
PRIVATE_KEY=YOUR_PRIVATE_KEY
Enter fullscreen mode Exit fullscreen mode

Etapa 4: Configurar o Hardhat

Antes de configurar o arquivo hardhat.config.js, precisaremos de um gateway para nos comunicarmos com a blockchain Ethereum.

public RPCs

Para isso, usaremos os RPCs públicos da Ankr para conectar e enviar transações na blockchain Ethereum. Basta copiar o URL para o testnet goerli. Nenhuma conta ou login é necessário!

Agora você está pronto para editar seu hardhat.config.js com o seguinte:

  • Abra o arquivo hardhat.config.js
  • Exclua o código dentro e copie e cole o código abaixo:
require("@nomiclabs/hardhat-waffle");
require('@openzeppelin/hardhat-upgrades');
// Qualquer arquivo que tenha a instrução require('dotenv').config() 
// carregará automaticamente quaisquer variáveis no arquivo .env da raiz.
require('dotenv').config();

module.exports = {
  solidity: "0.8.0",
  networks:{
    goerli:{
      // URL RPC Pública da Ankr 
      url: "https://rpc.ankr.com/eth_goerli",
     // PRIVATE_KEY carregada a partir do arquivo .env 
      accounts: [`0x${process.env.PRIVATE_KEY}`]
    }
  }
};
Enter fullscreen mode Exit fullscreen mode

Você notou como estamos fornecendo a variável PRIVATE_KEY neste arquivo? Estamos carregando-os do process.env usando a biblioteca dotenv que instalamos durante a configuração do ambiente de desenvolvimento.

Etapa 5: Configurar O Contrato ERC-20

Usaremos um padrão ERC-20 baseado no OpenZepplin. OpenZepplin↗ é um padrão de código aberto para proteger aplicativos blockchain e fornece produtos de segurança para construir, automatizar e operar dApps.

Para isso, precisaremos do pacote @openzeppelin/contracts!

npm install @openzeppelin/contracts
Enter fullscreen mode Exit fullscreen mode
npm install --save-dev @nomiclabs/hardhat-waffle
Enter fullscreen mode Exit fullscreen mode

Agora, é hora de nomear seu token!

Nas próximas etapas, criaremos um arquivo de contrato inteligente (você deve combinar o nome do arquivo com o nome do token). Portanto, se você está pensando em nomear seu token como Buildoooor, certifique-se de nomear o arquivo de contrato exatamente como Buildoooor.sol.

  • Digite cd e vá para sua pasta /contracts (que deve estar vazia agora) e execute touch Buildoooor.sol.

  • Abra o arquivo .sol recém-criado e copie e cole o seguinte:

//SPDX-License-Identifier: Unlicense
//Declare the version of solidity to compile this contract. 
//This must match the version of solidity in your hardhat.config.js file
pragma solidity ^0.8.0;

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

//Esta função instancia o contrato e
//classifica ERC20 para esquema de armazenamento
contract Buildoooor is ERC20 {

   //Sinta-se à vontade para alterar o fornecimento inicial de 50 tokens
   //Mantenha o (10 ** 18) inalterado, pois multiplica o número que queremos como nosso _supply_ para ter 18 casas decimais
    uint constant _initial_supply = 50 * (10**18);

    //certifique-se de substituir a referência "Buildoooor"
    //com seu próprio nome ERC-20
    //escolha um símbolo de token, neste caso "FIRT"
    constructor() ERC20("Buildoooor", "BUDL") {

        _mint(msg.sender, _initial_supply);
    }
}
Enter fullscreen mode Exit fullscreen mode
  • Salve e feche este arquivo
  • Compile seu contrato para garantir que tudo esteja pronto para implantação
npx hardhat compile
# resultado
# Compilado n arquivo Solidity com sucesso
Enter fullscreen mode Exit fullscreen mode

Observação: Se você estiver no Windows e receber "nothing to compile error", execute npm install [email protected] e execute novamente npx hardhat compile. Isso deve resolver o problema. Saiba mais aqui!

Etapa 6: Implantar O Token ERC20

Agora que configuramos nosso contrato ERC20, vamos criar o script de implantação para ele.

  • Digite cd .. para retornar ao diretório raiz do projeto.
  • Digite cd e vá para o diretório /scripts (que deve está vazio agora).
  • Execute o comando touch deploy.js, abra o arquivo deploy.js e copie e cole o seguinte:
async function main() {
    const [deployer] = await ethers.getSigners();

    console.log("Implantando contratos com a conta", deployer.address);

    const weiAmount = (await deployer.getBalance()).toString();

    console.log("Saldo da conta:", (await ethers.utils.formatEther(weiAmount)));

    //certifique-se de substituir a referência "Buildoooor"
    //com seu próprio nome ERC-20
    const Token = await ethers.getContractFactory("Buildoooor");
    const token = await Token.deploy();

  // loga o endereço do Contrato em nosso console
    console.log("Endereço do Token:", token.address);
  }

// execute o método main, capture os erros, se houver algum erro, e loga no console
  main()
    .then(() => process.exit(0))
    .catch((error) => {
      console.error(error);
      process.exit(1);
  });
Enter fullscreen mode Exit fullscreen mode
  • Salve e feche o arquivo
  • Digite cd .. para retornar ao diretório raiz do projeto.
  • Execute npx hardhat run scripts/deploy.js --network goerli
npx hardhat run scripts/deploy.js --network goerli
#Implantando contratos com a conta: 0x6d4779c3Dc002894C2E2108c75e6ef72C418E23f
#Saldo da conta: 0.2
#Endereço do Token: 0x74d8C71a4aF1eBD7DA5B8eAAabe35b0D29478DF6
Enter fullscreen mode Exit fullscreen mode

Seu contrato será compilado e implantado na rede Goerli!

Agora, vá para goerli.etherscan.io/ e insira seu endereço de token para ver seu contrato ERC-20 implantado na Goerli Network.

goerli etherscan

Buildoooors, ótimo trabalho implantando seu próprio token ERC-20 na Goerli usando o padrão Ankr, Hardhat e OpenZeppelin ERC20.


Esse artigo é uma tradução de Krinza Momin feita por @bananlabs. Você pode encontrar o artigo original aqui

Latest comments (0)