pragma solidity ^0.5.1;
contract ERC20Interface {
string public name;
string public symbol;
uint8 public decimals;
uint public totalSupply;
// function balanceOf(address _owner) public view returns (uint256 balance);
function transfer(address _to, uint256 _value) public returns (bool success);
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
function approve(address _spender, uint256 _value) public returns (bool success);
function allowance(address _owner, address _spender) public view returns (uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
contract ERC20 is ERC20Interface {
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) internal allowed;
constructor() public {
name = "MUKE Token";
symbol = "IMOOC";
decimals = 0;
totalSupply = 100000000;
balanceOf[msg.sender] = totalSupply;
}
// 余额
// function balanceOf(address _owner) public view returns (uint256 balance) {
// return balanceOf[_owner];
// }
function transfer(address _to, uint256 _value) public returns (bool success) {
require(_to != address(0));
require(balanceOf[msg.sender] >= _value);
require(balanceOf[_to] + _value >= balanceOf[_to]);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value);
}
// 先用到approve,transferFrom必须是由发起调用的人去扣除_from账户的币,这样它必须要先被授权
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(_to != address(0));
require(balanceOf[_from] >= _value);
require(allowed[_from][msg.sender] >= _value);
require(balanceOf[_to] + _value >= balanceOf[_to]);
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
emit Transfer(_from, _to, _value);
success = true;
}
function approve(address _sender, uint256 _value) public returns (bool success) {
allowed[msg.sender][_sender] = _value;
emit Approval(msg.sender, _sender, _value);
success = true;
}
// 限额
function allowance(address _owner, address _sender) public view returns (uint256 remaining) {
return allowed[_owner][_sender];
}
}
把钱包地址分享在推特或者脸书,再把帖子网站粘贴到该网站框框里,即可得到测试网络中以太币