pragma solidity ^0.4.20; // best with 0.4.21 contract Token { // The keyword "public" makes those variables // readable from outside. address public minter; mapping (address => uint) public balances; // This is the constructor whose code is // run only when the contract is created. function Token() public { minter = msg.sender; } function mint(address receiver, uint amount) public { if (msg.sender != minter) return; balances[receiver] += amount; } function send(address receiver, uint amount) public { if (balances[msg.sender] < amount) return; balances[msg.sender] -= amount; balances[receiver] += amount; } }