Este projeto é de um Token, que é um contrato inteligente (smart contract) implementado em Solidity, seguindo o padrão ERC-20. O contrato define uma interface chamada IERC20, que estabelece os métodos e eventos necessários para operações básicas em tokens, como transferências, aprovações e consultas de saldo.
A implementação principal do contrato é denominada ZMToken, e ela herda da interface IERC20. O token é identificado pelo nome "ZM Token", com o símbolo "ZM" e é divisível em até 18 casas decimais.
O fornecimento total inicial do token é fixado em 10 ether. Ao ser implantado, todo esse fornecimento é alocado na conta do proprietário do contrato, que é a conta que realizou a implantação.
O contrato oferece funcionalidades essenciais, incluindo a transferência de tokens entre contas, a aprovação de gastos por terceiros, a verificação de autorizações para transferências.
É importante notar que o código inclui mecanismos de segurança, como verificações de limites de tokens durante transferências e aprovações, para garantir o correto funcionamento e evitar potenciais exploits.
Este projeto é uma base sólida para a criação e gestão de tokens ERC-20 na blockchain Ethereum, proporcionando interoperabilidade e conformidade com os padrões estabelecidos.
- Licença: GPL-3.0
- Versão do Solidity: ^0.8.0
- Nome: ZM Token
- Símbolo: ZM
- Decimais: 18
- Fornecimento Total: 10 ether
function totalSupply() public view returns (uint256);
Retorna o fornecimento total de Tokens.
function balanceOf(address account) public view returns (uint256);
Retorna o saldo de Tokens detidos pelo endereço especificado (`account`).
function transfer(address recipient, uint256 amount) public returns (bool);
Transfere `amount` Tokens da conta do remetente para o endereço de destino (`recipient`). Retorna verdadeiro se a transferência for bem-sucedida.
function approve(address spender, uint256 amount) public returns (bool);
Permite que o `spender` gaste `amount` Tokens em nome do remetente. Retorna verdadeiro se a aprovação for bem-sucedida.
function allowance(address owner, address spender) public view returns (uint256);
Retorna a quantidade de Tokens que o `spender` está autorizado a gastar em nome do `owner`.
function transferFrom(address sender, address recipient, uint256 amount) public returns (bool);
Transfere `amount` Tokens do `owner` para o `buyer` se o remetente estiver autorizado a fazê-lo. Retorna verdadeiro se a transferência for bem-sucedida.
function burn(uint256 amount) external returns (bool);
Permite ao proprietário do contrato queimar (remover permanentemente de circulação) uma quantidade específica de tokens.
Transfer
event Transfer(address indexed from, address indexed to, uint256 value);
Emitido quando Tokens são transferidos de um endereço para outro.
Approval
event Approval(address indexed owner, address indexed spender, uint256 value);
Emitido quando um endereço é autorizado a gastar Tokens em nome de outro endereço.
Burn
event Burn(address indexed account, uint256 value);
O evento Burn é emitido dentro da função burn no momento em que os tokens são queimados.
O contrato inteligente está atualmente implantado com um fornecimento total inicial de 10 ether. O proprietário do contrato é a conta que o implanta, e o fornecimento total é alocado no saldo do proprietário.