pragma solidity ^0.4.18; contract MiningMachineToken { string public _name="MiningMachineToken"; string public _symbol = "MMT"; string public _date = "1975-04-05"; address _owner; uint256 _totalSupply; mapping(address => uint256) private balances; mapping(address => mapping(address => uint256)) private allowed; function MiningMachineToken(string name, string symbol, string date, uint quantity) public { _name = name; _symbol = symbol; _date = date; _owner = msg.sender; _totalSupply = quantity; balances[msg.sender] = quantity; } event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); function totalSupply() public constant returns (uint supply) { return _totalSupply; } function balanceOf(address tokenOwner) public constant returns (uint balance){ return balances[tokenOwner]; } function allowance(address tokenOwner, address spender) public constant returns (uint remaining) { return allowed[tokenOwner][spender]; } function approve(address spender, uint tokens) public returns (bool success) { require(msg.sender != spender); allowed[msg.sender][spender] = tokens; Approval(msg.sender, spender, tokens); return true; } function transfer(address to, uint tokens) public returns (bool success) { if (tokens < 0 || balances[msg.sender] < tokens || balances[to] + tokens < balances[to]) { return false; } balances[msg.sender] -= tokens; balances[to] += tokens; Transfer(msg.sender, to, tokens); return true; } function transferFrom(address from, address to, uint tokens) public returns (bool success) { require(msg.sender != from); if (tokens < 0 || balances[from] < tokens || balances[to] + tokens < balances[to] || allowed[from][msg.sender] < tokens) { return false; } balances[from] -= tokens; balances[to] += tokens; allowed[from][msg.sender] -= tokens; Transfer(from, to, tokens); return true; } }
0.4.18