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
npm install dotenv
- 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
Execute npx hardhat, escolha "create a sample project"
e digite y
para tudo.
Pode levar um minuto ou dois para instalar tudo!
npx hardhat
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
npm install --save-dev @nomiclabs/hardhat-ethers ethers
- 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
Etapa 4: Configurar o Hardhat
Antes de configurar o arquivo hardhat.config.js
, precisaremos de um gateway para nos comunicarmos com a blockchain Ethereum.
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}`]
}
}
};
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
npm install --save-dev @nomiclabs/hardhat-waffle
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 executetouch 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);
}
}
- 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
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);
});
- 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
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.
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)