ETH Price: $3,138.17 (+1.01%)
Gas: 5 Gwei

Contract Diff Checker

Contract Name:
TokenERC20

Contract Source Code:

File 1 of 1 : TokenERC20

pragma solidity ^0.4.16; 

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; } 

contract TokenERC20 { 

string public name;//Atonomi; 

string public symbol;//ATO; 

uint8 public decimals = 18; // 18 是建议的默认值 

uint256 public totalSupply;//100000000 

mapping (address => uint256) public balanceOf; // 

mapping (address => mapping (address => uint256)) public allowance; 

event Transfer(address indexed from, address indexed to, uint256 value); 

event Burn(address indexed from, uint256 value); 

function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public { 

totalSupply = initialSupply * 10 ** uint256(decimals); 

balanceOf[msg.sender] = totalSupply; 

name = tokenName; 

symbol = tokenSymbol; 

} 

function _transfer(address _from, address _to, uint _value) internal { 

require(_to != 0x0); 

require(balanceOf[_from] >= _value); 

require(balanceOf[_to] + _value > balanceOf[_to]); 

uint previousBalances = balanceOf[_from] + balanceOf[_to]; 

balanceOf[_from] -= _value; 

balanceOf[_to] += _value; 

Transfer(_from, _to, _value); 

assert(balanceOf[_from] + balanceOf[_to] == previousBalances); 

} 

function transfer(address _to, uint256 _value) public { 

_transfer(msg.sender, _to, _value); 

} 

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { 

require(_value <= allowance[_from][msg.sender]); // Check allowance 

allowance[_from][msg.sender] -= _value; 

_transfer(_from, _to, _value); 

return true; 

} 

function approve(address _spender, uint256 _value) public 

returns (bool success) { 

allowance[msg.sender][_spender] = _value; 

return true; 

} 

function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) { 

tokenRecipient spender = tokenRecipient(_spender); 

if (approve(_spender, _value)) { 

spender.receiveApproval(msg.sender, _value, this, _extraData); 

return true; 

} 

} 

function burn(uint256 _value) public returns (bool success) { 

require(balanceOf[msg.sender] >= _value); 

balanceOf[msg.sender] -= _value; 

totalSupply -= _value; 

Burn(msg.sender, _value); 

return true; 

} 

function burnFrom(address _from, uint256 _value) public returns (bool success) { 

require(balanceOf[_from] >= _value); 

require(_value <= allowance[_from][msg.sender]); 

balanceOf[_from] -= _value; 

allowance[_from][msg.sender] -= _value; 

totalSupply -= _value; 

Burn(_from, _value); 

return true; 
} 
}

Please enter a contract address above to load the contract details and source code.

Context size (optional):