pragma solidity ^0.4.11; contract WorkshopERC20BaseToken { string public name; string public symbol; uint8 public decimals; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; event Transfer(address from, address to, uint256 value); event Approve(address from, address to, uint256 value); function WorkshopERC20BaseToken() internal { decimals = 8; totalSupply = 1000000 * (10 ** uint256(decimals)); name = "WorkshopERC20BaseToken"; symbol = "WBT"; balanceOf[msg.sender] = totalSupply; } function _transfer(address _from, address _to, uint256 _value) internal { require(_to != 0x0); require(balanceOf[_from] >= _value); require(balanceOf[_to] + _value >= balanceOf[_to]); balanceOf[_from] -= _value; balanceOf[_to] += _value; Transfer(_from, _to, _value); } function transfer(address _to, uint256 _value) public { _transfer(msg.sender, _to, _value); } function transferFrom(address _from, address _to, uint256 _value) public { require(allowance[_from][_to] >= _value); allowance[_from][_to] -= _value; _transfer(_from, _to, _value); } function approve(address _to, uint256 _value) public { allowance[msg.sender][_to] = _value; Approve(msg.sender, _to, _value); } }
0.4.18