Skip to content

Instantly share code, notes, and snippets.

@evertonfraga
Last active May 13, 2017 16:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evertonfraga/910fc38d003e532e1483e5eeb7fe1d28 to your computer and use it in GitHub Desktop.
Save evertonfraga/910fc38d003e532e1483e5eeb7fe1d28 to your computer and use it in GitHub Desktop.
pragma solidity ^0.4.5;
contract MyToken {
/*
Variáveis públicas do token.
Elas conformam com o padrão de moedas na rede ethereum, este padrão permite integração
com as Wallets e interoperabilidade com outros contratos.
Standard ERC 20: https://github.com/ethereum/EIPs/issues/20
*/
string public standard = 'Token 0.1';
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
/* Mapping com os saldos de quem possui a moeda */
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
/* Isto gera um evento público na blockchain que notifica os clientes */
event Transfer(address indexed from, address indexed to, uint256 value);
/* Inicializa o contrato com variáveis definidas pelo usuário */
function MyToken(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol) {
balanceOf[msg.sender] = initialSupply; // Quem cria o contrato começa com todo o suprimento de moedas
totalSupply = initialSupply; // Atualiza o suprimento total da moeda
name = tokenName; // Associa o nome para exibição (em Wallets por exemplo)
symbol = tokenSymbol; // Associa o símbolo da moeda para exibição
decimals = decimalUnits; // Associa a quantidade de casas decimais
}
/* Transferência entre accounts */
function transfer(address _to, uint256 _value) {
// Verifica se conta possui saldo suficiente
if (balanceOf[msg.sender] < _value) throw;
// Checa por overflow de variável
if (balanceOf[_to] + _value < balanceOf[_to]) throw;
// Subtrai saldo de quem está efetuando a transferência
balanceOf[msg.sender] -= _value;
// Adiciona mesmo saldo ao destinatário
balanceOf[_to] += _value;
// Notifica atores que estejam escutando por eventos deste tipo
Transfer(msg.sender, _to, _value);
}
}
/*
Possibilidades a partir deste contrato:
Diversos exemplos em https://ethereum.org/token
*/
@Cristyander
Copy link

Quando ocorre a transferência de tokens de uma carteira para outra, a taxa e paga com tokens ou com ether?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment