//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.24; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract MyTokenErc20 is IERC20 uint256 supply = 2000; mapping (address => uint256) private _balances; mapping (address => uint256(address => uint256)) private _allowances; function totalSupply() external view returns (uint256){ return supply; } function balanceOf(address who) external view returns (uint256) { balance = balances[who]; } function allowance(address owner, address spender) external view returns (uint256) { return _allowances[_owner][_spender]; } function transfer(address to, uint256 value) external returns (bool){ require(value + _balances[to] <= supply) require(_balances[msg.sender] >= value); _balances[msg.sender] = _balances[msg.sender] - value _balances[to] = _balances[to] + value emit Transfer(msg.sender, to, value) return true } function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
0.4.18