Projeto criado no curso Cripto Dev.
Desenvolvimento de um smart contract para o token CryptoToken (CRY) com testes unitários.
Comandos para criar o projeto:
Iniciando o arquivo package.json
npm init -y
Instalando a biblioteca hardhat
npm install --save-dev hardhat
Iniciando as configurações do hardhat
npx hardhat
- Create a basic sample project
- Enter
- Y
- n
Instalando as dependencias necessarias para rodar o projeto
npm install --save-dev @nomiclabs/hardhat-ethers ethers @nomiclabs/hardhat-waffle ethereum-waffle chai
Comando para compilar os contratos
npx hardhat compile
Comando para executar os testes unitários
npx hardhat test
Para implantar o contrato deve ser passado o valor total de tokens (totalsupply), o endereço que realizar a implantação será o proprietário do contrato.
Apenas o proprietário do contrato pode:
- Cunhar moedas;
- Queimar moedas (que estejam em sua posse);
- Mudar o estado do contrato;
- Finalizar o contrato (apenas se o contrato estiver com o estado cancelado);
As seguintes funçoes só pode ser executadas se o contrato estiver com o estado ativo:
- transfer();
- toMint();
- toBurn();
O contrato pode realizar as seguintes operações:
-
totalSupply(): Verifica a quantidade maxima de tokens;
-
balanceOf(address): Verifica saldo do endereço informado;
-
state(): Verifica o estado do contrato que pode ser:
- Active
- Paused
- Cancelled
-
transfer(address, amount): Realiza uma transferência do endereço conectado para o endereço informado com a quantidade de tokens informada;
-
toMint(amount): Realiza a cunhagem da quantidade de tokens informada adicionando ao totalsupply;
-
toBurn(amount): Realiza a queima da quantidade de tokens informada diminuindo do totalsupply;
-
changeState(uint): Altera o estado de acordo com o número informado;
-
kill(): Finaliza o contrato;
As seguintes ferramentas foram usadas na construção do projeto: