Até agora eu só escrevi um grande contexto introdutório sobre o tema de criptos. Vou deixar aqui o link para os posts:
Agora chegou a hora de por a mão na massa e começar a brincar nesse universo. E não se preocupe, não vamos precisar programar… Ainda kkkk…
Preparando a Workstation
Primeiro, vamos baixar um software chamado Ganache, para simular um Blockchain localmente. A instalação é bem simples. Logo na primeira tela temos acesso a uma lista de Wallets com saldo em ETH local e iremos utilizar essas chaves para testar nosso smart contract.
O próximo passo será instalar o VSCode, o Power Shell (caso esteja usando Windows), e o Node.js. Existem dezenas de tutoriais na internet para instalação, por isso não vou aprofundar. Com tudo instalado, vamos iniciar o VSCode e abrir um terminal.
Meu console vai ser um pouco diferente, pois utilizo o WSL invés do Power Shell, porém a instalação e configuração são muito mais complexas, por isso não coloquei como opção.
Crie um diretório no local que quiser e adicione a pasta:
Ao clica no ícone “Explorador” (Ctrl + Shift + E), o diretório adicionado ira aparecer:
Agora, no terminal, vamos iniciar a configuração do projeto da sua primeira criptomoeda, digitando:
npx hardhat
Ao termino, serão gerados vários arquivos:
Para finalizar, vamos instalar o OpenZeppelin no projeto, digitando o seguinte comando no terminal:
npm install @openzeppelin/contracts
Criando o Smart Contract
Acesse o OpenZeppelin. Essa interface facilita a criação de alguns padrões simples de Tokens e NFTs. No caso, vamos utilizar o padrão ERC-20. Adicione um nome e um símbolo. As configurações seguintes são:
- Mintable: Habilita a criação de mais moedas pela carteira criadora do smart contract;
- Burnable: Habilita a queima de Tokens pela carteira criadora do smart contract;
- Pausable: Habilita pausa de processamento de qualquer transação no contrato, incluindo transferências, queima e criação;
- Permit: Habilita autoridade do criador do smart contract para alterar o saldo de uma carteira, sem a necessidade de autorização do proprietário;
- Votes: Habilita a possibilidade de votação para transferir, criar e queimar Tokens.
Vamos ignorar restante por enquanto. No campo “permit“, coloque o valor de 1.000.000 de unidades, que será registrado na carteira criadora do smart contract. Deixe as opções “mintable“, “burnable” e “pausable” habilitadas para os próximos posts, onde vou explicar como criar um marketplace simples, usando este contrato como a moeda corrente para compra e venda. O código deve ficar mais ou menos assim:
Faca download do arquivo .sol no diretório “contracts” do seu projeto. Agora precisamos configurar o Hardhat para interagir com a nossa Blockchain local do Ganache. Para isso, abra o arquivo hardhat.config.js e adicione essa parte no código:
As palavras do Mnemonic estão na interface do Ganache, junto com as informações do servidor RPC:
Por fim, vamos criar um pequeno script. No diretório “scripts“, crie um arquivo chamado deploy.js e cole o seguinte código:
const { ethers } = require("hardhat");
async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying contracts with the account:", deployer.address);
try {
const MyToken = await ethers.getContractFactory("UnicornioCoin");
const myToken = await MyToken.deploy();
const contract = await myToken.deployed();
console.log(
"Contract Unicornio Coin deployed to address:",
contract.address
);
} catch (e) {
console.log(e);
}
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
Altere o nome UnicornioCoin para o nome do seu Token. Agora, para criar o smart contract, execute o seguinte comando no terminal:
npx hardhat run scripts/deploy.js --network local
O resultado será algo próximo a isso:
Estes são o hash do contrato e o endereço público para acesso ao seu smart contract em um ambiente de produção. É importante anotar esse código. No Ganache é possível verificar a operação de criação do contrato:
Perceba que, para criação de um contrato de qualquer operação diferente de leitura, será cobrado um valor na moeda local da rede. No caso dessa Sidechain local, a criação custou 0.08 ETH.
Parabéns! Agora você tem seu próprio Token ERC-20 =)