pragma solidity ^0.4.18; contract MyToken { string private tokenName = "My Super Awesome Token"; string private tokenSymbol = "MSAT"; // The number of zeros that your token is divisible by // With the # of decimals being 2, each of our tokens can be divisible 100 times uint private tokenDecimals = 2; uint private supplyOfTokens = 500; mapping(address => uint) private balances; mapping (address => mapping (address => uint)) private allowed; function MyToken() public { // When the contract is first deployed, // let the creator have all of the tokens // for them to distribute balances[msg.sender] = supplyOfTokens; } function name() public constant returns (string) { return tokenName; } function symbol() public constant returns (string) { return tokenSymbol; } function decimals() public constant returns (uint) { return tokenDecimals; } function totalSupply() public view returns (uint) { return supplyOfTokens; } function transfer(address _to, uint _value) public returns (bool) { require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender] - _value; balances[_to] = balances[_to] + _value; return true; } function balanceOf(address owner) public view returns (uint) { return balances[owner]; } /* The following functions contain logic that let contracts and other people transfer your tokens on your behalf, with your permission! */ function transferFrom(address _from, address _to, uint _value) public returns (bool) { require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from] - _value; balances[_to] = balances[_to] + _value; allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value; return true; } function approve(address _spender, uint _value) public returns (bool) { allowed[msg.sender][_spender] = _value; return true; } function allowance(address _owner, address _spender) public view returns (uint) { return allowed[_owner][_spender]; } }
0.4.18