WEB3DEV

Cover image for Implementando um ERC-20 para Aurora usando Hardhat
Felipe Gueller
Felipe Gueller

Posted on • Atualizado em

Implementando um ERC-20 para Aurora usando Hardhat

Olá mundo! A Aurora é a Máquina Virtual da Ethereum (EVM) baseada na rede NEAR. As taxas de transação são baixas, o tempo médio de confirmação do bloco é rápido e se beneficia da segurança e escalabilidade da NEAR.

Cenário de uma auróra boreal

A Aurora é uma EVM baseada em rede que se beneficia da segurança e escalabilidade da NEAR. Tecnicamente, a Aurora é um fragmento da NEAR que suporta o Solidity. O padrão do token ERC-20 foi inicialmente criado em 2015. Para o bem e para o mal, é um dos aplicativos Web3 mais usados até o momento.

Assista o vídeo com o tutorial

Neste tutorial de "olá mundo", você irá a aprender coisas como:

  • Testar um contrato Solidity
  • Implementá-lo na rede de teste Aurora
  • Implementá-lo na rede principal Aurora sem pagar nenhuma taxa de gas
  • Obter a verificação no Aurorascan

Sumário

1 . Configuração
..... . Rede principal Aurora
..... . API Aurorascan

2 . Teste

3 . Implementação na rede de teste Aurora

4 . Implante na rede principal Aurora


Configuração

Antes de tudo, certifique-se de ter estes itens instalados em sua máquina:

Depois de instalá-los globalmente em sua máquina, você pode:

1- Clonar este repositório: https://github.com/julienbrg/dune-erc20
2- No seu terminal (no seu diretório raiz), instale os módulos do nó digitando o seguinte comando:

npm i
Enter fullscreen mode Exit fullscreen mode

Vá para https://aurora.dev/start, na seção Aurora Network, selecione a guia testnet e clique em Add Network: isso irá adicionar a rede de teste Aurora como uma nova rede em sua carteira MetaMask.

Vá para o faucet Aurora Testnet e clique no botão testnet. Agora você pode simplesmente clicar no botão Connect to Aurora Testnet, ele se transformará em um botão Request 0.001 ETH from faucet: basta clicar nele para obter 0.001 ETH. Isso será mais do que suficiente para implantar seu contrato de token ERC-20.

Se precisar de mais, você pode usar a rede de teste da Rainbow Bridge para transferir alguns Goerli ETH para a rede de teste Aurora.

De volta ao diretório raiz:

1- Copie o arquivo .env.example
2- Renomeie para .env
3- Na MetaMask, exporte a chave privada da carteira que contém o ETH da rede de teste Aurora, copie e cole após o sinal de igual (linha 3)

Rede principal Aurora

Vamos usar uma ferramenta chamada Aurora+. Acesse https://aurora.plus e inscreva-se para obter suas 50 transações gratuitas por mês. Depois de fazer isso, você terá seu URL de endpoint RPC personalizada esperando por você (menu superior direito):

Imagem mostrando o local do URL

Você pode copiar e colar esse URL em seu arquivo .env (linha 1).

Em seguida, você deverá exportar a chave privada de sua carteira para o arquivo .env.

API Aurorascan

Alguma coisa está faltando nesse arquivo .env e é a chave API do Aurorascan. Você precisará dela para facilitar a leitura do código-fonte do seu contrato por todos:

https://aurorascan.dev/myapikey

Você pode se cadastrar, clicando sobre a chave API no menu esquerdo. Então clique em add para criar uma chave API. Copie e cole a chave em seu arquivo .env

Teste

Este é um token ERC-20 muito básico que usa a biblioteca de contratos Solidity do Open Zeppelin. Há apenas uma função: a função mint(). A visibilidade é pública, o que significa que qualquer um pode chamar esta função e cunhar quantas unidades quiser (estamos em um modo 'open bar', por assim dizer):

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.4;

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

contract Dune is ERC20 {
    constructor() ERC20("Dune", "DUNE") {}

    function mint(address to, uint256 amount) public {
        _mint(to, amount);
    }
}
Enter fullscreen mode Exit fullscreen mode

Portanto, você primeiro implantará o contrato e, em seguida, o usará chamando a função mint() e irá transferir um punhado de token DUNE para si mesmo.

Antes de implantar, queremos executar o arquivo de teste chamado Dune.ts que está na pasta test. Aqui está o comando que você deseja usar:

npx hardhat test
Enter fullscreen mode Exit fullscreen mode

Você verá que:

  • A compilação do contrato Solidity funcionou bem
  • Foi implantado corretamente em uma rede local
  • As pessoas podem interagir com ele

Implementação na rede de teste Aurora

O script de implantação está na pasta scripts. Para executá-lo e implantar seu contrato, basta digitar este comando em seu terminal:

npx hardhat run scripts/deploy.ts --network aurora_testnet
Enter fullscreen mode Exit fullscreen mode

Você deve obter algo como isto:

ERC-20 deployed at 0x51723295B6E50d94D887Bbc70c1AE0ab1Fa3a469 ✅
Enter fullscreen mode Exit fullscreen mode

Se você quiser ver o que acontece na cadeia, você pode copiar o endereço do contrato e colá-lo na barra de pesquisa da rede de teste Explorer. Se você clicar sobre o hash de transação, você irá ver algo como isto:

Detalhes da trasação na plataforma Aurora Testnet Network

É isto, você acabou de implantar um contrato Solidity para a rede de teste Aurora! 🎉

Para cunhar e transferir uma quantidade de DUNE para você (ou para um amigo), você pode usar este seguinte comando:

npx hardhat run scripts/transfer.ts --network aurora_testnet
Enter fullscreen mode Exit fullscreen mode

Se quiser, você pode adicionar esse token à sua carteira na MetaMask para verificar se ele está lá e também transferir alguns. Na MetaMask, clique na guia 'Ativos' e depois em 'Importar token'. Lá você pode colar o endereço do seu contrato, os demais campos serão preenchidos automaticamente, clique em ‘Adicionar token personalizado’ e aparecerá o token DUNE com saldo de 1 unidade.

Implante na rede principal Aurora

O seguinte comando executará o arquivo deploy.ts localizado na pasta do script:

npx hardhat run scripts/deploy.ts --network aurora_mainnet
Enter fullscreen mode Exit fullscreen mode

Parabéns! 🎉

Seu ERC-20 está implantado na rede Aurora, você não pagou nada, o código-fonte está disponível para que todos possam verificar o que está acontecendo e as pessoas podem até acionar a função mint diretamente do Aurorascan.

Imagem mostrando o contrato na Aurora

E você também pode usar o script transfer.ts para criar alguns DUNE:

npx hardhat run scripts/transfer.ts --network aurora_mainnet
Enter fullscreen mode Exit fullscreen mode

Verificação do contrato

Este mesmo contrato já foi verificado, então qualquer outro contrato semelhante também será verificado. Um contrato é 'verificado' quando o código-fonte (em Solidity) corresponde ao código de bytes que está na blockchain.

Neste projeto, o plug-in de verificação Etherscan está em vigor. No arquivo deploy.ts descomente as linhas 15, 16 e 17, e execute:

npx hardhat run scripts/deploy.ts --network aurora_mainnet
Enter fullscreen mode Exit fullscreen mode

Parabéns! 🎉

Para mais informações, existe um frontend disponível se você quiser cunhar alguns tokens Dune: https://dune-aurora.netlify.app/. Foi desenvolvido utilizando React, Web3Auth e um construtor chamado Plasmic. O repositório do Github está aqui (há uma ramificação da duna) se você quiser dar uma olhada.

O token DUNE que você acabou de implantar e usar se beneficia da segurança da rede Aurora. Além disso, estamos usando o conjunto de contratos do Open Zeppelin que foram auditados várias vezes. Para obter informações, o Open Zeppelin Wizard é uma ferramenta muito útil para editar seus próprios contratos inteligentes.

Obrigado pela sua leitura!

Foto por Henrik Heitmann

Sinta-se à vontade para entrar em contato comigo via Element, Telegram, Twitter, Discord ou LinkedIn.

Este artigo é uma tradução de Julien Béranger feita por Felipe Gueller. Você pode encontrar o artigo original aqui.

Latest comments (0)