WEB3DEV

Cover image for Criação de um token com um contrato Wizard do Open Zeppelin e sua implantação em uma Testnet
Fatima Lima
Fatima Lima

Posted on

Criação de um token com um contrato Wizard do Open Zeppelin e sua implantação em uma Testnet

O Open Zeppelin é uma empresa muito renomada na indústria de contratos inteligentes que fornece uma estrutura de código aberto para construir um contrato inteligente seguro.

Isto faz parte de um conjunto completo de ferramentas que ajudam os desenvolvedores, desde a construção, até o gerenciamento e a segurança para o desenvolvimento e implantação de um contrato inteligente.

Neste artigo vamos focar na biblioteca do contrato, e mais especialmente em uma de suas ferramentas chamada Contract Wizard que ajuda o desenvolvedor a iniciar um contrato com múltiplos componentes e características provenientes de sua própria biblioteca Solidity. Utilizaremos esta ferramenta para criar e implantar um contrato simples ERC20 em uma testnet (rede de testes).

Image description

Fig1. Open Zeppelin Contract Wizard

 

Com esta ferramenta, podemos criar diferentes tipos de contrato, como ERC20, ERC721, ERC1155 ou token de Governança.

Você só tem que selecionar quais recursos deseja habilitar, e uma vez feito isso, você pode:

  • copiá-lo
  • baixá-lo e integrá-lo em um projeto do Truffle/Hardhat
  • abri-lo no Remix para explorar o resultado, talvez adicionar algumas mudanças e testá-lo.

Neste exemplo, o abriremos no Remix, clicando no botão Open no Remix.

Image description

Fig2. Explore o contrato com o Remix para obter mais informações sobre o que está acontecendo e o que cada recurso oferece

 
O que eu acho realmente interessante com o Remix é que consigo verificar facilmente cada uma das funções implementadas para entender o que elas fazem. Ótimo material quando você está aprendendo!

Você pode então testá-lo, implantando-o primeiro no Remix VM.

O Remix VM é uma blockchain sandbox que funciona dentro do navegador. Em cada recarga, a antiga blockchain é reinstalada, e nem tudo é funcional nele (por exemplo, o block.timestamp não está funcionando).

Assim, você terá acesso a todos os métodos herdados das diferentes bibliotecas que você adicionou, selecionando os recursos:

Image description

Fig3. Token implantado no VM

 
Em seguida, o próximo passo é implantá-lo em uma Testnet. Isto é o que normalmente fazemos se quisermos desafiar nosso contrato em um ambiente mais realista. As Testnets são uma rede real baseada na blockchain real da qual herdam, mas trabalhando com regras diferentes que tornam os blocos de mineração mais fáceis do que em uma rede real. O uso de uma testnet é gratuito e o Ether nela não tem nenhum valor real.

Para fazer isso, vá para a aba Deploy & Run Transactions, selecione Injected Provider environment e configure sua carteira (depende de você, no meu caso é Metamask) para a testnet que você quer implantá-la (no meu caso é a Goerli) :

Image description

Fig4. Configurando o ambiente da rede Injected Provider

 
Para poder implantar o contrato na Goerli, você precisa fazer duas coisas:

1. Adicione a rede à sua carteira se ela ainda não estiver pronta (tutorial aqui)

Image description

Fig5. Configurando a rede para a testnet Goerli

 
2. Você precisará de algum ether falso para pagar pela transação também. Você pode obtê-los através de faucets (torneiras):

Existem muitas faucets diferentes, e é possível que no momento em que eu publicar este artigo, uma delas fique indisponível.

Quando terminar, você poderá obter o endereço do contrato, seja na saída Remix, ou na Metamask:

Image description

Fig6. Clique na transação de implantação do contrato para encontrar o hash txn e depois o contrato

 

Image description

Fig7. Ou faça-o a partir do console de saída Remix

 
Você chegará no Etherscan, um explorador de blocos que torna os dados da Ethereum acessíveis a todos através de uma interface muito poderosa.
 
A partir desta página, você poderá encontrar o endereço de seu contrato.

Clique nele:

Image description

Fig8.A página que você verá, se clicar em um hash de transação no Etherscan

 
Isto o enviará para o seu endereço de contrato do token.

Se você já explorou o espaço DeFi, há chances de já saber que alguns contratos podem interagir diretamente através do site Etherscan.

Como exemplo, você pode verificar o contrato do Token Uniswap

here, e ao ir para "Read Contract" ou "Write Contract", você pode interagir diretamente com o contrato sem a necessidade de ir para a interface do site da Uniswap:

Image description

Fig9. Contrato do Roteador Uniswap, diferente daquele vinculado acima

 

Image description

Fig10. DApp do site da Uniswap

 
Mas vamos voltar ao nosso contrato agora:

Image description

Fig11. Contrato não verificado no Etherscan

 
Como você pode ver, nosso contrato não é realmente interativo e é explicado o porquê: o contrato deve ser verificado e publicado.

Isto não significa que ninguém possa interagir com o contrato. Uma vez que o contrato é implantado na blockchain Ethereum, qualquer pessoa pode interagir com ele, desde que tenha as informações corretas. E como os dados estão disponíveis publicamente, qualquer pessoa com um bom conhecimento pode ter acesso a eles.

A verificação de um contrato é importante de qualquer modo. É uma marca de confiança para os usuários de seu contrato, pois eles podem facilmente verificá-lo e ver se há bugs, ou pior, se é um scam (fraude).

Para verificar o contrato, basta clicar em Verify and Publish (visível na fig. 11) :

Image description

Fig12. Formulário Verify & Publish

 
Volte para sua página Remix e verifique as informações para completar os campos necessários: Versão do compilador, Licença escolhida, mas para o tipo de compilador selecione Solidity (Arquivo único)

Você vai chegar aqui :

Image description

Fig13. Formulário de verificação do código fonte do contrato

 
Você deve ter notado que seu contrato está importando outros contratos do OpenZeppelin. Isso significa que você não tem um único contrato de arquivo... Então por que você escolheu a opção Arquivo Único?

Graças aos plugins Remix, você encontrará aqui:

Image description

Fig14. Gerenciador de Plugin da interface Remix onde você pode baixar módulos úteis

 
Clique no ícone, procure pelo plugin "Flattener" e ative-o.

Quando estiver pronto, vá até o novo ícone e clique em Flatten contract XXXXXX

Image description

Fig15. Plugin Flattener do Remix

 
Isto copiará o flattened contract para a sua área de transferência. Em seguida, copie-o no formulário de Verificação do Código Fonte do Contrato Etherscan (fig. 12) e inicie o processo de verificação.

Se você fez tudo corretamente, a verificação mudará a página de do seu contrato para isto!

Image description

Fig16. Seu primeiro contrato ERC20 verificado na Goerli!

 
Muito bem, você acaba de criar e implantar seu primeiro token ERC20 na Ethereum (testnet) !
 

Esse artigo foi escrito por ISMAIL S. e traduzido por Fátima Lima. O original pode ser lido aqui.

Latest comments (0)