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 =)