Skip to content

sergio150015/dio_token_pro

Repository files navigation

🪙 DIO Token Professional (DIOP)

Solidity Hardhat OpenZeppelin License Tests Network

Token ERC-20 profissional desenvolvido para o Bootcamp DIO Blockchain com funcionalidades avançadas de segurança e controle.


🌐 Contrato Verificado na Blockchain

STATUS: DEPLOYED (03/02/2026)

Informação Valor
Network Sepolia Testnet
Contract Address 0x4dA77Bc148B639E51ba63642217834C84b1bBc45
Etherscan Ver Contrato Verificado
Token Tracker Ver Token
Deploy Date 03/02/2026

🔗 Links Rápidos

📸 Screenshots do Deploy

Etherscan Transação Código Verificado
Etherscan Transaction Verified

📝 Screenshots serão adicionados após o deploy bem-sucedido


📋 Índice


🎯 Sobre o Projeto

O DIO Token Professional (DIOP) é um token ERC-20 que implementa as melhores práticas de desenvolvimento de smart contracts, utilizando as libraries auditadas da OpenZeppelin. Este projeto demonstra competências avançadas em:

  • ✅ Desenvolvimento de Smart Contracts em Solidity
  • ✅ Uso de padrões de segurança (OpenZeppelin)
  • ✅ Testes automatizados com Hardhat/Chai
  • ✅ Deploy e verificação em redes Ethereum
  • ✅ Implementação de EIPs avançados (EIP-2612 Permit)

⚡ Funcionalidades

Feature Descrição Implementação
ERC-20 Padrão de token fungível ERC20.sol
Mintable Owner pode criar novos tokens (até MAX_SUPPLY) mint()
Burnable Holders podem queimar seus tokens ERC20Burnable.sol
Pausable Circuit breaker para emergências ERC20Pausable.sol
Permit Aprovações gasless via assinatura (EIP-2612) ERC20Permit.sol
Ownable Controle de acesso para funções críticas Ownable.sol

Funções Principais

// 🌱 Criar novos tokens (apenas owner)
function mint(address to, uint256 amount) public onlyOwner

// 🔥 Queimar tokens (qualquer holder)
function burn(uint256 amount) public

// ⏸️ Pausar transferências (apenas owner)
function pause() public onlyOwner

// ▶️ Despausar transferências (apenas owner)
function unpause() public onlyOwner

💰 Tokenomics

Parâmetro Valor
Nome DIO Token Professional
Símbolo DIOP
Decimais 18
Supply Inicial 100,000,000 DIOP (10% do máximo)
Max Supply 1,000,000,000 DIOP
Mintável ✅ Sim (controlado pelo owner)
Queimável ✅ Sim (deflacionário)

🏗️ Arquitetura

dio-token-pro/
├── contracts/
│   └── DIOToken.sol       # Smart Contract principal
├── scripts/
│   ├── deploy.js          # Script de deploy
│   └── interact.js        # Script de interação/demo
├── test/
│   └── DIOToken.test.js   # Suite completa de testes
├── docs/                   # Documentação adicional
├── hardhat.config.js       # Configuração do Hardhat
├── package.json            # Dependências do projeto
├── .env.example            # Template de variáveis de ambiente
└── README.md               # Este arquivo

Herança do Contrato

DIOToken
    ├── ERC20              (Token base)
    ├── ERC20Burnable      (Queima de tokens)
    ├── ERC20Pausable      (Pausa de emergência)
    ├── Ownable            (Controle de acesso)
    └── ERC20Permit        (Aprovações gasless - EIP-2612)

🚀 Instalação

Pré-requisitos

Passos

# 1. Clone o repositório
git clone https://github.com/seu-usuario/dio-token-pro.git
cd dio-token-pro

# 2. Instale as dependências
npm install

# 3. Configure as variáveis de ambiente
cp .env.example .env
# Edite .env com suas chaves (veja seção de Deploy)

# 4. Compile os contratos
npm run compile

🧪 Testes

O projeto inclui uma suite completa de 27 testes que cobrem:

  • ✅ Deployment e configuração inicial
  • ✅ Minting (criação de tokens)
  • ✅ Burning (queima de tokens)
  • ✅ Pausable (pausa/despausa)
  • ✅ Transfers (transferências)
  • ✅ Allowances (aprovações)
  • ✅ EIP-2612 Permit
  • ✅ Edge Cases & Security
# Rodar todos os testes
npm test

# Rodar testes com gas report
npm run test:gas

# Rodar testes com coverage
npm run coverage

Resultado dos Testes

  DIOToken - Suite Completa de Testes
    Deployment
      ✔ Deve configurar o owner correto
      ✔ Deve mintar supply inicial para owner
      ✔ Deve ter nome e símbolo corretos
      ✔ Deve ter 18 decimais
    Minting
      ✔ Owner deve conseguir mintar tokens
      ✔ Não-owner NÃO deve conseguir mintar
      ✔ Não deve permitir mint acima do MAX_SUPPLY
      ✔ Não deve permitir mint para zero address
    ...
    
  27 passing (2s)

🌐 Deploy

Deploy Local (Hardhat Network)

# Terminal 1: Inicie o nó local
npm run node

# Terminal 2: Deploy no nó local
npm run deploy:local

Deploy em Testnet (Sepolia)

  1. Obtenha ETH de teste: Sepolia Faucet

  2. Configure o .env:

SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/SUA_CHAVE_ALCHEMY
PRIVATE_KEY=sua_private_key_metamask
ETHERSCAN_API_KEY=sua_chave_etherscan
  1. Execute o deploy:
npm run deploy:sepolia
  1. Verifique no Etherscan (automático ou manual):
npx hardhat verify --network sepolia ENDERECO_CONTRATO ENDERECO_OWNER

🎮 Interação

Após o deploy, você pode interagir com o contrato:

# Rodar script de demo
npm run interact:local

Via Console Hardhat

npx hardhat console --network localhost

# No console:
const Token = await ethers.getContractFactory("DIOToken")
const token = await Token.attach("ENDERECO_DO_CONTRATO")
await token.name()  // "DIO Token Professional"
await token.symbol()  // "DIOP"
await token.totalSupply()  // 100000000000000000000000000n

🔒 Segurança

Medidas Implementadas

  • SafeMath Automático: Solidity 0.8+ previne overflow/underflow
  • Controle de Acesso: Modificador onlyOwner para funções críticas
  • Pausable: Circuit breaker para emergências
  • Validações: Checks contra zero address e limites de supply
  • OpenZeppelin: Contratos auditados e battle-tested

Boas Práticas

  • 🔐 NUNCA commite o arquivo .env com chaves reais
  • 🔐 Use hardware wallets para deploy em mainnet
  • 🔐 Teste exaustivamente antes de qualquer deploy
  • 🔐 Considere auditorias externas para produção

📜 Licença

Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.


👨‍💻 Autor

Sérgio
Bootcamp DIO Blockchain

GitHub LinkedIn


🙏 Agradecimentos

  • DIO - Plataforma de educação
  • OpenZeppelin - Libraries de contratos seguros
  • Hardhat - Framework de desenvolvimento

Feito com ❤️ e ☕ durante o Bootcamp DIO Blockchain

About

Professional ERC-20 Token (Mintable, Burnable, Pausable, Permit) built with Hardhat & OpenZeppelin. Fully deployed and verified on Sepolia Testnet.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors